找回密码
 立即注册
查看: 520|回复: 5

请大神帮忙看看T3计时器的中断问题

[复制链接]

2

主题

4

回帖

30

积分

新手上路

积分
30
发表于 2023-5-26 11:45:40 | 显示全部楼层 |阅读模式
#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保持常亮。难道是中断没有触发? 请大神帮忙看看这个程序问题出现在哪里?

回复

使用道具 举报 送花

2

主题

4

回帖

30

积分

新手上路

积分
30
发表于 2023-5-26 11:47:36 | 显示全部楼层
芯片是STC8H1K08 编程器为STC USB Link1。程序编译下载都没有什么问题
回复 支持 反对

使用道具 举报 送花

2

主题

4

回帖

30

积分

新手上路

积分
30
发表于 2023-5-26 11:52:13 | 显示全部楼层
电路没有问题,已经通过其他程序验证过了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

积分
3599
发表于 2023-5-26 13:06:28 | 显示全部楼层


STC8H1K08只有定时器0/1/2,没有定时器3(T3)
1.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

积分
3599
发表于 2023-5-26 13:17:03 | 显示全部楼层
你的代码没问题
将你的原始代码编译完成后下载到一个有定时器3的芯片,P3.3口正常闪烁
但STC8H1K08没有定时器3,所以P3.3口不翻转
回复 支持 反对

使用道具 举报 送花

2

主题

4

回帖

30

积分

新手上路

积分
30
发表于 2023-5-26 13:34:08 | 显示全部楼层
谢谢。刚才也在继续看芯片手册,的确是这个问题。现在调整到Timer2,就可以了。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:12 , Processed in 0.114333 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表