问题是:进入HALT模式复位后,重新配置了外部中断及定时器,但是进入主程序循环的时候,就再也进入不到外部中断的程序里面去了! 求解! 谢谢!
#pragma vector=0x08
__interrupt void PD_IDR_EXTI_IRQHandler(void)
{
if(!(PD_IDR&0x01))//PD0 按键检测
__disable_interrupt(); //关闭中断
CLK_configuration(); //重新配置时钟
GPIO_Init(); //初始化I/O--配置PD口外部中断
TIME2_Init(); //初始化TIM2--使能全局中断
Flash_LED_data(); //初始化数据
PB_ODR=0x00; //全亮LED---检测I/O
__disable_interrupt(); //关闭中断
__halt();//在停机模式下,所有寄存器与RAM的内容保持不变,默认情况下时钟配置也保持不变
__no_operation(); //NOP
CLK_configuration(); //重新配置时钟
GPIO_Init(); //重新定义I/O
TIME2_Init(); //开TIM2中断
PB_ODR=0xff; //全亮LED
__no_operation(); //NOP
while(1)
{
if(TIME_5MIN_FLAG==1)
{
TIME_5MIN_FLAG=0;
PB_ODR=LED_OFF;
__disable_interrupt(); //关闭中断
__halt();
CLK_configuration(); //重新配置时钟
GPIO_Init(); //重新定义I/O
TIME2_Init(); //开TIM2中断
__no_operation(); //NOP
}
//PD_IDR_EXTI_IRQHandler();
if(Key_Mode==Key_Mode_down)
{
PB_ODR=LED_OFF;
}
else{Flash_LED();}
求解解释! IAR STM8S |