关于学习15单片中断时候遇到的坑(注意点)

发布于 2022-07-09  61 次阅读


使用15单片机,因为15单片机有官方提供的库函数,使用直接使用库函数,没有看寄存器和库函数代码,这时候遇到了第一个坑

库函数没有打开中断总开关EA = 1;
需要手动在代码前面打开中断总开关

第二个坑
进入中断以后,运行的代码时间尽量短,最好在1us以内处理完成
如果时间过长,可能会赶不上下一个中断,可能会让程序出现问题
可以先利用标志位置位,退出中断以后在主循环里面完成任务

第三个 中断优先级
stc15w4k32s4有2个中断优先级。一个正在执行的的低优先级中断能被高优先级所中断,但不能被另一个低优先级中断
1,低优先级中断可被高优先级中断所中断,反之不能。
2.任何一种中断(不管是高级还是低级),一旦得到响应,不能被它的同级中断所中断。当同时收到几个同一优先级的中断要求时,哪一个要求得到服务,取决于内部的查询次序。

第四个

第四个问题不在中断,而是定时器和串口,串口占用一个定时器导致我配置定时器时候,同个定时器是无法使用的,我在配置中断定时器的时候出现了定时器进不去定时器中断

总结:
过于依赖库函数,没有认真看芯片手册和对照库函数源代码