微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32的中断服务程序

STM32的中断服务程序

时间:10-02 整理:3721RD 点击:
假设产生100us的定时中断,中断服务程序执行完需要10us的时间,请问这10us的时间在100us的中断时间内还是之外呢,请高人指点迷津!

完全两个概念  10us跟着100us没有什么关系

首先,中断服务是在主程序执行过程中运行的。
你的100us定时器中断就是每隔100us中断一次,执行顺序是:主程序,进去定时中断(进去中断后即重新计时),执行中断程序,退出中断返回主程序,等待下一次100us中断。
不管中断程序执行多长时间,你需要了解定时器中断什么阶段开始重新计数,也就是在进去中断后重新计数,因此,你的10us包含在100us中

多谢啦,好东西,谢谢啦,~~~~~~~~~~

你的问题简化一点就是说代码在运行中断程序时,定时器的计数器在计数没。
这个一般的做法是中断程序执行完之前,会把定时器的计数器清空,这样做法,中断服务程序的时间就不算在内。

你的问题简化一点就是说代码在运行中断程序时,定时器的计数器在计数没。
这个一般的做法是中断程序执行完之前,会把定时器的计数器清空,这样做法,中断服务程序的时间就不算在内。

这个和你的计数重装有关,假如一进入中断就清除标志位,那么从此时开始走100us开始下一次中断,那么中断执行时间10us就在这100us之内,如果在执行完中断程序后才清除标志位,那么这10us就不在这100us 之内

10us是算在100us里的,比如你产生100us中断,处理中断要150us,那么会一直处在中断处理中,不会进主循环。除非你在中断的时候关闭定时器!执行完中断要处理的东西,再打开定时器!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top