本帖最后由 xt3203 于 2012-1-19 10:54 编辑 #include"stm8s105s4.h" #define uint unsigned int #define uchar unsigned char _Bool LED1 @PA_ODR: 6; _Bool LED2 @PA_ODR: 5; _Bool LED3 @PA_ODR: 4; _Bool K1 @PD_IDR: 4; void EXTI_INIT(void) { EXTI_CR1 = 0x80; } void IO_INIT(void) { PA_DDR=0X70; PA_CR1=0x70; PD_CR1=0x10; PD_CR2=0x10; } main() { _asm("sim"); EXTI_INIT(); IO_INIT(); _asm("rim"); LED1 = 1; LED2 = 0; LED3 = 1; while (1); } @far @interrupt void KEY(void) { if(!K1) PA_ODR ^=0x70; while(!K1); } 在中断里把那几个LED取反一下而已,却发现中断经常进入两次,请问各位大哥怎么回事呀? |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |