【 单片机定时器中断问题】
51系列单片机在定时器溢出跳转处理定时器中断函数的时候,如果没有关停该定时器TR,同时中断处理占用了很多时间一直没返回,导致该定时器再次溢出的时候,单片机还没有退出上一个...
51系列单片机在定时器溢出跳转处理定时器中断函数的时候,如果没有关停该定时器TR,同时中断处理占用了很多时间一直没返回,导致该定时器再次溢出的时候,单片机还没有退出上一个定时中断处理函数,那么这时候系统会置位TF标志位吗,如果会的话,那么定时器中断函数退出的时候是否会把这个新置位的TF标志清零呢
展开
展开全部
进入中断后,首先是系统硬件自动将TF标志位清零,如果TR没关,定时器继续工作,当再次溢出时,当然TF被硬件置1了,如果你的上次中断函数没有结束,就没法再进入本次中断处理,TF不能被置0,TR即使继续工作也,即使再溢出,也没有用了,因为TF还是1,只能等待cpu处理完上次中断内容,然后进入本次中断处理.一旦进入中断函数处理,TF才能被置0,
追问
哦,就是说定时器的TF溢出标志位在CPU进入定时器中断处理函数后立刻就被硬件清零了,然后接下去直到退出本次中断都不再硬件清零TF位了,是吧
追答
对于这一个定时器就是这样的,
1另外提下 如过有很多中断时,当条件成立后,每个标志位被置1,没有进入自己中断函数的所有标志都不能硬件清零的.
另外还有中断嵌套的,
2如果有中断优先级的中断来了,(或IP中设置了比自己高),那么就去执行哪个高级别中断,完了再回来执行,如果,(IP中没设置,就按标准优先级处理),如果当前优先级高那么继续执行当前中断,执行完再去按优先级执行其他中断.
3如果在此时间时,有比它低的中断来了,不去中断,但因为低的中断标识位没有手工清零,那么执行完当前中断后就继续执行这个低中断
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询