- 打卡等级:初来乍到
- 打卡总天数:3
- 最近打卡:2025-11-08 05:08:20
已绑定手机
新手上路
- 积分
- 36
|
定时器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();
···
} |
|