问问,定时器0中断相关

时间:2022-06-07 23:36:40
我刚学单片机,最近做了个小设计,通过移位寄存器74HC595将单片机发出的串行数据(十六进制01代码)转换为并行数据,分别加到发光二极管上,一位控制一个发光二极管,0就灭,1就亮,用串口调试助手向单片机发0x01或0x02或0x03,当发01时24个二极管都亮,发00时都灭,发03时让他们一闪一闪的,实现一闪一闪的功能就是用定时器0中断,来一个中断闪一次,可我发完03(它们就一闪一闪的),再发01时得等两三秒钟才变成全亮,这是为什么啊?我把串口中断设为最高优先级了
 
请各位大侠赐教

5 个解决方案

#1


我发完03,他们就一闪一闪的,这很对,可为什么接着发01等再等几秒钟才变成全亮呢?我要是先发01让他们全亮再发03让他们闪,就会马上执行,不存在延迟,求解

#2


那要看的程序实现

#3


单片机收到0x01后,立即关闭定时器(包括中断和TR0),同时发送点亮数据

估计你没有及时关闭

#4


发完03它们一闪一闪的说明,定时器中断工作了,
定时器工作的时候你有没有给他延时?如果给了延时, 很可能是延时没有结束,就发送了01,这是要延时完之后才会全亮。

可以这样比较一下:
1,发送完03,让她闪烁一段时间后,再发送01,看会不会立即全亮。
2,发送完03,马上再发送01,看会不会立即全亮。

#5


过来学习学习!

#1


我发完03,他们就一闪一闪的,这很对,可为什么接着发01等再等几秒钟才变成全亮呢?我要是先发01让他们全亮再发03让他们闪,就会马上执行,不存在延迟,求解

#2


那要看的程序实现

#3


单片机收到0x01后,立即关闭定时器(包括中断和TR0),同时发送点亮数据

估计你没有及时关闭

#4


发完03它们一闪一闪的说明,定时器中断工作了,
定时器工作的时候你有没有给他延时?如果给了延时, 很可能是延时没有结束,就发送了01,这是要延时完之后才会全亮。

可以这样比较一下:
1,发送完03,让她闪烁一段时间后,再发送01,看会不会立即全亮。
2,发送完03,马上再发送01,看会不会立即全亮。

#5


过来学习学习!