51单片机做遥控车问题

51单片机做遥控车问题,第1张

两个中断,可能在某个时刻会有点冲突,但不会是经常的。

要么设置一个重要的中断为优先级。

再有,每个中断程序不要写太长,尽量及时从中断返回,需要计算费时的程序放在主程序中,或写成子程序,回主程序调用。这样,就不影响另一个中断。在中断程序中禁止延时程序。

要利用两个中断,只能这么做。其实,单片机的多个中断是可以同时开的,每个中断源的中断处理程序都写得比较短,还是会正常中断的,不会影响的。就怕,中断程序过长了,不能及时返回,就会影响其它中断源。所以,一定要优化中断程序。

难道这些中断源就不能同时用了吗,不可能的事。有点杞人忧天了。

不是自动丢弃,而是反复接收,导致后来的数据将先收到、未处理的数据给覆盖了。

例如对方发给你一串0x01、0x02、0x03,假如你中断函数太过磨叽,可能在将0x01从缓冲区中取出后、在处理的过程中又先后收到了0x02、0x03,那么0x03会把0x02覆盖掉,导致你下次再进入串口中断函数时只能取出0x03了。

因此中断函数务必简洁高效,只要不是火烧眉毛的判断/处理,一律应当扔到主循环体或常规任务中处理。

另外现在很多的单片机串口是具有硬件FIFO的,善用FIFO也会大大提高整个系统的中断效率。

通常在中断子程序中是不调用延时子程序的,这样会增加中断处理时间,如果有其它低级中断了,就会延误响应中断了。所以,中断子程序中不要写调用延时子程序,中断子程序也不要写得过长,处理过多的任务,要尽快处理后及时返回,如果中断一次有很多任务需要执行完全,可以在中断子程序中设置一个标志位,在主程序中查这个标志位,当标志为1时,就在主程序中完成这些任务,这样就不会影响其它中断源的中断,也不会使中断产生混乱。

但不知,你这提问是想帮你写程序昵,还是帮你分析中断程序的写法。

以上就是关于51单片机做遥控车问题全部的内容,包括:51单片机做遥控车问题、单片机串口中断函数中,如果在里面时间过长,后面来的数据会被自动丢弃吗、疑惑…单片机进入中断后不能执行调延时程序中断服务程序里已写延时程序…等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10173904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存