中断是一种有效的机制,滑戚可在不影响程序正常运行的情况下,检测和响应计算机系统中的外部事件和内部异常。通过使用中断, *** 作系统和应用程序可以实现多任务处理、设备控制和错误恢复等功能,提高了计算机系统的可靠性和效率。
需要注意的是,中断不应频繁发生,否则会使CPU分配过多的处理时间来处理中断,而导致系统响应变慢。因此,在设计、实现和使用中断时,需要考虑一些性能优化技术和策略,以提高系统的效率和性能。
我猜你的串口发送用的是轮询等待发送结束的方式,而数码管动态扫描用的是软件延时(就是for循环)吧?、、这样串口发送很占时间——你想,如果是9600baud的话,发一字节就要1ms左右。因此这个插入的发送数据的任务会让延时函数的延时时间比预定的长很久,动态扫描就连不起来了。
改善方法有3个:
1,最简单的,在通信可靠的前提下尽可能提高串口波特率,同时降低发送频率(就是增大定时器中断周期),再把要发送的悄祥数据弄少点,能用缩写的就别写一大串。。
2,串口发送改为中断方式,这个不细说了,网上有资料。。
3,舍弃数码管扫描的软件启带搏延时,改用硬件延时(就是把数码管的位的切换也放在定时器中断里完成),保证动态扫描的及时性。这叫单片机的“前后台”编程方式,相当于将动态扫描放行逗在了“后台”,由定时器中断来触发,不触发则不占CPU时间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)