极光大侠的个人空间 https://bbs.21ic.com/?1390774 [收藏] [复制] [RSS]

日志

基于消息驱动单片机程序设计思想(一)之总述篇

已有 470 次阅读2015-2-9 17:23 |个人分类:软件设计|系统分类:单片机

        在一个多应用的单片机系统中,采用消息驱动编程思想,能使程序的设计思路更加清晰。笔者在设计低端车载收放机时采用了此方法。系统实现如下功能:MP3+FM+RTC。一些外部控制信号(包括按键)、内部定时信号都转换成消息。不同的应用对消息进行不同的解析。
        众所周知,在一个单片机系统中,最基本的构成框架为:输入设备(按键、外部中断信号等)、输出设备(如显示等)、特殊功能模块 (存储、音频解码、视频解码、以及各种物理量采集) 。最常见的做法就是定时控制法(勉强称之为时间片法)。所以,为了适应单片机定时控制程序设计方式,我们在设计某个模块的驱动程序时,就要有所规划。哪些模块,是放在初始化里的,哪些是放在定时中断里的,哪些是随取随用的,这里的模块其表现形态就是具体的函数。比如设计一个段式LCD驱动程序,笔者思路如下:驱动IO初始化、显示内容模块(这个函数随显示种类的不同而不同而增加)、显示数据更新模块(这是放在定时中断里的函数)、另外还有一些显示时间控制标志。同理,对于按键驱动程序设计也是如此。不过,对于按键,一般把采集到的值转换成消息。不同的模块,接收到消息时,会做出不同的解析。
        如今,也有一些程序设计者也在单片机软件中试着用面向对象的编程思想。比如,对于一个功能模块,把该模块用到的所有变量定义在一个结构体里。
        时间有限,今天只能写这么多了。待续

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)