请大神帮忙看看T3计时器的中断问题
#include "stc8h.h"#include "intrins.h"
void TM3_Isr() interrupt 19
{
P33 = !P33;
//测试端口
}
void main()
{
P_SW2 |= 0x80; //使能访问 XFR
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x18;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
T3L = 0x11; //T3 设置一个小数
T3H = 0x00;
TM3PS=0x01;
//预分频器
IE2|=IE2|0x20;
//使能T3定时器中断
EA = 1;//使能总中断
T4T3M = 0x08; //启动定时器
while (1);
}
根据T3的频率计算公式,周期大约在0.14秒;P33管脚接一个LED。如果中断正常,那么LED应该闪烁,并且人眼能够识别。可是现在LED保持常亮。难道是中断没有触发? 请大神帮忙看看这个程序问题出现在哪里?
芯片是STC8H1K08 编程器为STC USB Link1。程序编译下载都没有什么问题 电路没有问题,已经通过其他程序验证过了。
STC8H1K08只有定时器0/1/2,没有定时器3(T3)
你的代码没问题
将你的原始代码编译完成后下载到一个有定时器3的芯片,P3.3口正常闪烁
但STC8H1K08没有定时器3,所以P3.3口不翻转 谢谢。刚才也在继续看芯片手册,的确是这个问题。现在调整到Timer2,就可以了。
页:
[1]