原创 我写MCU软件的模块规划

2007-8-2 18:07 2243 1 2 分类: MCU/ 嵌入式

       续<<初写MCU的困惑>>


       在硬件规划好后,规划软件的写法,执行任务较多时,首先是考虑运行时间够不够,当然MCU不是奔腾,是要斤斤计较时间问题的,下面是说下自己的软件规划方法.


       首先看需要的功能哪个部分需要的循环时间最短,现举个例子: 有按键扫描,红外遥控接收,I2C传输,写LCD显示,RTC等.(有人习惯遥控接收用中断,有人不用中断,为了体现关于时间的划分,下面也不采用中断).下图是硬件简单描述(假设):


          点击看大图


        需要的最短扫描就是遥控接收了(惯例100US),我要把时间切成每50US一个时间片,每200个时间片一个循环,如下图:


         点击看大图


        1.遥控接收部分:占用1.3.5.7.9.....199.1 等时间片,此时的扫描周期刚好是100US,一般音频设备使用的是HT6221或PT2221等发射IC,在写判断1或0脉冲时,时间检测不要写的太精密,留+-100US公差.


        2.ENCODE检测也不用中断,1MS扫描一次,50US*20=1MS,用2.22.42.......182.2等时间片.


       3.按键检测,每10MS扫描一次,用时间片0.


       4.LCD驱动刷新,HT1621是3线传输,可是与标准SPI BIT数不一样,咱也只好用一般I/O传输.给它安排时间片4.两次刷新的间隔最短是10MS.


       5.I2C传输假设是VOLUME控制IC,虽然16F877带I2C功能,咱也不用,用I/O模拟.安排时间片6.两次刷新的间隔最短是10MS.


      6.其他设备用一般I/O控制,安排时间片8.两次刷新的间隔最短是10MS.


      7.周器是0.5S,全部的子程序只有这个要求一定要时间准,咱在定时中断里加几句计数,累积到1000返回,1000*50US=0.5S,秒.分.时.天.的处理放在第10时间片.


      以上时间片安排,大家留意一下,在每一个时间片里,最多处理一个子程序,而且还可以加很多子程序.没有使用多个中断资源,就用了一个定时器中断.RTC的时间照样很准.其它子程序时间延迟点无所谓,只是别延迟太久了,象LCD和模拟I2C可能时间长点,想办法分到几个时间片里去完成.


      子程序之间的通信,建议你单独留出一点RAM,初始化时指定给某些子程序用,或开个时间片处理之间的通信,这点不多讲了,留给有兴趣的人去考虑.这写法是不是也可以叫"多任务"呢?但不是抢断式的,这样设备的程序也不需要抢断.8051 KEIL里有带个RTOS,我只是不太喜欢用它,比较麻烦,用的时候不太灵活,每个任务要求的周期也大.资源也需要的多.


        不管用啥方法,只要能满足产品要求就行.以后如果有时间,会写点嵌入式的东西(ARM----LINUX)!我老是在笑自己是不是走的土八路的道路,表达方式欠佳,很可能没人看的懂!如果是,就当你没看到过,但是我不希望你打击我的写博热情!

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户388096 2007-8-9 08:43

安排得不错,不过有一个缺点,必须保证每个子程序执行时间不能超过50US.否则会有跳时间片.

不知所说是否有理,请指教

相关推荐阅读
用户85503 2008-03-04 17:22
TEST
...
用户85503 2007-11-15 14:44
闲聊:拿着MCU望ARM
      有个网友问我:ARM和单片机到底有何区别。我想了很久不知道该如何回答他,因为单片机定义太模糊了,难道只有8BIT才叫单片机?其实应该从最基本的应用方面讲这个问题,如果你的设计8BIT速度不...
用户85503 2007-06-29 15:21
让人郁闷的"中国芯"
         去年2月份写的,从另一个地方搬到这来的!                  咱们中国这几年真是屁股上装了火药,科技在以神舟为龙头的牵引下,以NKKKM的速度在飞跑!这中间灌了多少水我...
用户85503 2007-06-29 14:40
小议无线能量传速
         前几年有看到报道美国电力汽车的无线充电,今天看到一家公司网站上推无线能量传速方案,其实无线能量传速早在身边有应用了,如电动牙刷,我只是想发表下这技术的前景及要解决的不足只处.从美好的...
用户85503 2007-06-27 18:00
初写MCU软件的困惑
         写MCU软件这几年,写程序的技巧也积累了一些,记忆最深的还是当初是如何从书本知识转向产品实用的.        初学MCU时,教程上和老师讲的软件编写方法,真正用到产品设计上时就感觉...
EE直播间
更多
我要评论
1
1
关闭 站长推荐上一条 /3 下一条