|
发表于 2013-3-8 13:05:52
|
显示全部楼层
Gorgon_Meducer 发表于 2013-3-8 01:03
对于中断或者说硬件事件要从两个层面来考虑:
1、该事件的实时性要求
如果一个外设产生的事件实时性 ...
在这里我又有疑问了,注册一个周期性查询任务去处理中断,任务的周期不是由超级循环里面的任务整体
执行周期决定吧,你这个意思好象是说这个任务是一直存在的,然后就放在超级循环里,不去判断查询的
周期时间是否到,而是每次运行到这个任务就去执行,而且每个查询任务的周期不是一样了吗?我觉的应
该将各个周期性查询任务根据不同的周期由定时中断事件触发,将触发的查询任务放在任务队列中,再由
超级循环去执行
说到超级循环的任务整体执行周期,我还要问一下,刚开始你就说过“通过状态机结构,每一个任务都被
拆分成细小的步骤——也就是一个一个的状态代码——因此超级循环执行一圈的时间是极其短的”,所以
也能够像时间触发一样能够在准确的时刻执行,比方说我的程序中有一块是电机驱动,在控制电机时需要
以0.5ms的周期对电机芯片输出一定频率的驱动波形,如果不能以0.5ms的周期或者偏差过大的话,驱动波
形频率会出现变动,这样会导致电机匀速运转时有轻微抖动现象,所以这里采用超级循环的前提最好是它
的任务整体执行周期需要小于0.5ms吧,不知道我说的对不对?
中断处理程序不允许开嵌套,那如果在一个中断程序中,发生了另一个中断事情,在退出中断后会响应吗
,不然不是发生丢失了?其实就算开了中断嵌套,时间触发里面就说到也是有可能丢失中断的 |
|