求助,STC8H单片机开启中断
void main(void){
UART_config();
Timer2_config();
// 配置P4.6为外部中断下降沿触发
P_SW2 |=0x80;
P4M1 = 0x00;// 设置P4M1寄存器,准双向口
P4M0 = 0x00;// 设置P4M0寄存器
P4INTE = 0x40; // 置位P4INTE寄存器的第6位,P4端口中断使能
P4INTF = 0x40; // 置位P4INTF寄存器的第6位,P4端口中断标志位
P4IM0 = 0x00; // 下降沿触发
P4IM1 = 0x40; // 下降沿触发
IT1 &= ~(1 << 6); // 设置IT1寄存器的第6位
EX1 |= (1 << 6); // 设置EX1寄存器的第6位
EA = 1; // 使能全局中断
while(1)
{
delay_ms(1000);
if(ISR1_Flag)
{
TX1_write2buff(ISR1_Flag);
ISR1_Flag = 0;
}
}
void INT1_ISR_Handler (void) interrupt 13 //进中断时已经清除标志
{
ISR1_Flag = P4INTF;//取中断标志位打印,确认是否进入中断
P4INTF = 0x00; //清除中断标志位
}
isr.asm:
CSEG AT 014BH //P4INT_VECTOR地址
LJMP 006BH
END
现在标志位打印不出来,应该就是没有进入中断,大佬帮忙看看哪里有问题
本帖最后由 Lkck8210 于 2024-8-2 15:35 编辑
P4口的中断你设置EX1和IT1干嘛?
而且你用的是什么型号?
Lkck8210 发表于 2024-8-2 15:30
P4口的中断你设置EX1和IT1干嘛?
已经把EX1和IT1删了
用的是STC8H3K32S2
目前问题已经解决了,利用汇编从P4口中断地址014BH跳转到中断保留号13号上
之前是因为汇编文件类型选错了,所以一直没有编译到
页:
[1]