找回密码
 立即注册
查看: 16|回复: 1

定时器与IO中断冲突求助

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-11-08 05:08:20
已绑定手机

4

主题

3

回帖

36

积分

新手上路

积分
36
发表于 昨天 19:48 | 显示全部楼层 |阅读模式
定时器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
  • 打卡总天数:233
  • 最近打卡:2025-11-09 10:24:25

785

主题

1万

回帖

2万

积分

管理员

积分
20214
发表于 昨天 20:20 | 显示全部楼层

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-11-9 11:28 , Processed in 0.138651 second(s), 50 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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