当系统有个定时中断。
比如定时采集温度值,然后通过串口发送到上位机。这样程序里要用到定时中断和串口中断
比如定时1s采样一次。那么是1s内调用串口中断。还是1s外再调用
如果是1s后才允许用串口中断。是不是就不是1s定时采样了?那也就是说,执行1s以后。再调用串口接收中断了。就会不准。接收数据也要时间的哈。比如上位机向下位机写入一帧数据,24个字节。(接收中断)。波特率9600. 那么24*8/9600=20ms
也就是说,处理了定时中断后,再处理的串口中断
时间上:实际是定时+串口
如果是1s内,那么定时中断内嵌套串口中断?
不清楚,串口接收中断究竟用于定时中断内,还是外。
当然,定时中断内只是设定个标志位,具体运算程序还是在主循环里做
担心有无这种情况出现:
上位机发来数据,不收就会丢。计时被中断,就会错过。
唯一一个,就是发命令时候正想翻转输出脚时候,来了串口中断。。。
此帖出自
小平头技术问答
1、如果系统是自己设计那么简单,只需要做成顺序的就行,先采集温度,再发送标志给上位机,上位机回答并进行状态设置,同步整个系统,只用一个定时中断
2、如果上位机必须异步设置的话,就是通讯的问题了,已经忘记51的串口有没有FIFO深度设置了,如果没有那么中断就是一个字节一个,异步中断肯定需要嵌套
,这时1S中断优先级高,进去后做个标志马上出来,然后进入串口中断,51的中断响应大概是us级别的吧,应该来得及接收一个字节的数据。
一周热门 更多>