搜索
bottom↓
回复: 13

用事件驱动的方法来设计MCU

[复制链接]

出0入4汤圆

发表于 2010-4-28 16:49:46 | 显示全部楼层 |阅读模式
现在我们用的MCU,无论是51,AVR,ARM都是顺序执行程序的,就是PC从0开始一直根据程序往下走,编程的人通过程序控制PC的走向,只有中断时,才会跳转。但我们编程时,一般都是事件驱动的,比如定时器到一定的值,某个IO口电平发生变化,串口发送完成,某个全局变量发生变化,有相应的操作。我想为什么不把MCU设计成这种方式呢?只要刚开始执行初始化一下,然后MCU就进入等待状态,一个事件到来,PC就跳到这个事件的相应程序起始开始执行,完成后继续等待。这样,MCU的实时性可以提高而功耗就可以大幅降低。我们软件编程时,就不用再使用while(1){do1();do2();};这样的结构,只要定义相应事件所对应的处理函数就可以了,调度完全由MCU来做。比如: 在程序开头定义:定时0.5s到 -> do1,串口发送完成 -> do2就可以了。如果大家有光趣,我们可以深入讨论一下。

出0入4汤圆

发表于 2010-4-28 17:36:37 | 显示全部楼层
你描述的是个操作系统?

出0入0汤圆

发表于 2010-4-29 22:04:49 | 显示全部楼层
状态机。。

出0入0汤圆

发表于 2010-4-29 22:10:11 | 显示全部楼层
状态机与事件驱动机制是两种概念吧

出0入0汤圆

发表于 2010-5-1 12:00:30 | 显示全部楼层
回复【3楼】trey21ic  
-----------------------------------------------------------------------
状态与事件的确是两个不同的概念,状态是有持续时间的,事件则没有持续时间。

可是看楼主描述到最后,很明显用的就是状态机,思想就是时间片轮的分时系统。
说白了,不会这种编程的话,等于是不会单片机,只能做一些十分简单的东西。这也是俺自身的体会。

实际上,即便你没有定义状态结构变量,在这样的系统中也仍是状态机。
比如说常见的做法,利用一个定时器产生10ms的时间片(每10ms中断一次),在中断函数内,获得基于这个时间片值的其它各个定时,30ms、100ms、1s的定时,这些定时,说到底就是状态,它们要维持,直到处理它们的程序修改了这些状态,这些定时才会重新开始。

出0入0汤圆

发表于 2010-5-3 19:32:41 | 显示全部楼层
状态机和事件驱动的思想的确在编程中无处不在,处处都用到。
建议楼主可以参考一下QP(http://www.state-machine.com/),个人感觉非常经典

出0入0汤圆

发表于 2010-5-3 20:19:17 | 显示全部楼层
QP。。。我在用QP-nano。。真好。

出0入264汤圆

发表于 2010-5-3 20:39:59 | 显示全部楼层
状态+时间搞定一切。

出0入0汤圆

发表于 2010-5-3 22:10:52 | 显示全部楼层
支持LZ的想法。

出0入0汤圆

发表于 2010-5-3 22:59:24 | 显示全部楼层
回复【楼主位】banyai
-----------------------------------------------------------------------

楼主为什么不用单片机的空闲或者睡眠模式呢?来中断时唤醒,应该能符合你的要求。

出0入0汤圆

发表于 2010-5-3 23:04:28 | 显示全部楼层
没有驱动的事件,就是while(1)等事件。

出0入0汤圆

发表于 2010-5-3 23:06:40 | 显示全部楼层
事件驱动是表征

出0入0汤圆

发表于 2010-5-5 11:05:04 | 显示全部楼层
事件驱动这么一个思想对于小型的纯事件触发型的系统设计是比较简单,但是这个思想运用到大型复杂上就会显得有些笨拙。我个人是这么认为的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 04:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表