单片机中断小问题
比如说单片机定时器设置成50MS执行一次中断,但是中断程序代码执行时间大于50MS,那是不是最终结果是代码只能执行一部分呢?...
比如说单片机定时器设置成50MS执行一次中断,但是中断程序代码执行时间大于50MS,那是不是最终结果是代码只能执行一部分呢?
展开
2个回答
展开全部
关键要看你是怎么设置中断程序的。
一般而言,中断程序的过程是:
关闭中断-->保护现场(C51不用)-->执行中断程序-->现场恢复(C51不用)-->清理中断标志-->开启中断
在中断程序中关闭中断后,所有会触发中断的设置都不会触发单片机的中断源,有效的使中断程序完整执行。
如果你不清理中断标志就被单片机视为中断已触发,在开启中断后,马上进入中断。
如果你即不关闭中断,而中断程序代码执行时间大于定时器设置的时间,那么这个情况就与上面的一样,因为同级中断是同一中断优先级,先触发先执行中断。
一般而言,中断程序的过程是:
关闭中断-->保护现场(C51不用)-->执行中断程序-->现场恢复(C51不用)-->清理中断标志-->开启中断
在中断程序中关闭中断后,所有会触发中断的设置都不会触发单片机的中断源,有效的使中断程序完整执行。
如果你不清理中断标志就被单片机视为中断已触发,在开启中断后,马上进入中断。
如果你即不关闭中断,而中断程序代码执行时间大于定时器设置的时间,那么这个情况就与上面的一样,因为同级中断是同一中断优先级,先触发先执行中断。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询