找回密码
 立即注册
查看: 179|回复: 2

定时器与IO中断冲突求助

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-01-07 11:49:47
已绑定手机

6

主题

6

回帖

60

积分

注册会员

积分
60
发表于 2025-11-8 19:48:32 | 显示全部楼层 |阅读模式
定时器0与IO中断一起初始化后,定时器0中断进不去,IO中断能进,还会导致程序中的其他无关代码异常。即使中断函数内什么都没写,中断代码是STCISP生成的,单片机stc8H2K27U,以下是相关部分代码:
void Port1_Isr(void) interrupt 40
{
        /*
        ···
        */
}
void PortInt_Init(void)
{
        P1INTE = 0x02;                        //使能P1口中断
        P1IM0 = 0x00;                        //设置P1口中断模式 (00:下降沿, 01:上升沿)
        P1IM1 = 0x00;                        //设置P1口中断模式 (10:低电平, 11:高电平)
        P1WKUE = 0x00;                        //设置P1口中断唤醒省电模式
}

void Timer0_Isr(void) interrupt 1
{
        /*
        ···
        */
}

void Timer0_Init(void)                //1毫秒 @40.000MHz 中断
{
        AUXR |= 0x80;                        //定时器时钟1T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0xA0;                                //设置定时初始值1.5ms
        TH0 = 0x15;                                //设置定时初始值1.5ms
        TF0 = 0;                                  //清除TF0标志
        TR0 = 1;                                  //定时器0开始计时
        ET0 = 1;                                  //使能定时器0中断
}

void main()
{
        EAXSFR();                /* 扩展寄存器访问使能 */
        GPIO_init();//GPIO初始化
        uart_config();//UART初始化
        ADC_config();//ADC初始化
        PortInt_Init();
        Timer0_Init();
        ···
}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:368
  • 最近打卡:2026-04-02 08:50:05

844

主题

1万

回帖

2万

积分

管理员

积分
22799
发表于 2025-11-8 20:20:02 | 显示全部楼层

选 STC8H8K64U,AiCube 图形化配置,自动生成程序
截图202511082019165253.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2026-03-28 16:51:16
已绑定手机

0

主题

1

回帖

4

积分

新手上路

积分
4
发表于 5 天前 | 显示全部楼层
解决了么? 我的也是,IO中断打开,定时器就跑不了了。STC8H2K17U,AiCube不支持吧?
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-2 18:16 , Processed in 0.103558 second(s), 57 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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