用定时器中断,单片机中断服务程序动作的处理时间大于定时器定时时间会怎样?

单片机中断处理时间大于定时器定时时间,在下次中断时间到时,因为中断是同一类型、同一优先级,所以不会马上进入新的中断处理。

而是在本次中断处理结束后,单片机又马上进入新的定时器中断函数,主函数中的语句可能会没有机会运行到,会影响后面中断的实时性。所以答案为:等待中断处理完再进入新的中断处理。

最安全的处理方式:中断服务程序里边的动作处理时间越短越好,有什么事放外面处理。中断的初衷是为了提高系统实时性,中断处理太长,会影响同级的中断响应,其它中断谈何实时。

附:解决高速大量数据的中断处理难题

1.在中断中,只接收。或只作一些简单的语句。2、在主程序中处理。

---------如果上面的说法不理解  可以看下面----------

这是在定时器中断里面,如果中断里面执行的东西太多,中断发生的时间短。高优先级中断可以任意时刻到达。

如果这时候存在高优先级的中断一来,后面未执行完的程序就不会去执行而重新开始执行。

优先级高就抢断,否则等待结束执行。

例如定时器中断里的某任务执行完需要2ms,而定时器溢出中断发生的时间为1ms,那么这个任务执行到一半就会重新执行。 总之:任务只要没有被高优先级中断,不管定时中断发生时间多短 任务时间多长 都会被执行下去的。

 

转载:http://t.csdn.cn/rSfSW

posted @ 2022-11-02 00:53  iZJ"Qq4577105  阅读(614)  评论(0编辑  收藏  举报