标签:
初写MCU软件
写MCU软件这几年,写程序的技巧也积累了一些,记忆最深的还是当初是如何从书本知识转向产品实用的.
初学MCU时,教程上和老师讲的软件编写方法,真正用到产品设计上时就感觉到了很不实际.举个很简单的例子,在设计一个有按键和红外遥控输入的产品时,按照一般图书教程上做,写按键检测程序肯定有:读取I/O--->延时10mS--->再读取比较I/O数据.可是想想如果在延时10mS的时间里,红外信号到来,处理器正在等待10mS结束,软件不能及时检测到完整正确的遥控输入.有的人可能会想到用中断,这时如果你的MCU是不带中断的,比如PIC16C5X系列的,咋办?
周围做MCU软件的同事聊天时,一致认为都遇到过这情形,而且都是绕了很大的弯才迈过这道坎,惭愧,本人也是如此.
下面就以以软件模块的形式描述一下如何实时处理多个任务,这个例子只适用于简单的小程序,遥控和按键子程序要安排时间计数,计算时间到了没有,有心计的可以安排遥控和按键不要在同一个100US内处理.
上面这个方法,前提是要保证一个循环周期执行最长时间不能大于100微秒,稍复杂点的就不能这样做了.后续会再描述些稍复杂的写法.
系统分类:
单片机 | 用户分类:
软件技术类 | 来源:
原创 | 【推荐给朋友】 | 【添加到收藏夹】