本帖最后由 mcbot 于 2018-2-27 10:58 编辑
大家好,我用的mega644P-B15AZ 汽车级的。现在要用的外部中断INT1,初始化后始终不能正常工作。我的外部是一个20ms的脉冲,每8s发一个脉冲,用示波器看了一下,波形正常。我用的AVstudio 7.0开发环境。
求指点
现象如下
1、改成低电平触发中断以后,就会不停进中断 2、设置为边沿触发,就永远进入不了中断
3、设置为边沿触发后,我用另外一个IO口,产生一个方波,直接给INT1引脚,仍然是进不了中断
- void INT1_Init(void)
- {
- DDRD&= ~(1<<DDD3); //PD3输入
- PORTD|=(1<<PD3); //内部电阻上拉 50KΩ
- EIMSK=0x00; /*中断禁用*/
- EICRA &=~ (1<<ISC11);
- EICRA |= (1<<ISC10); /*上升沿和下降沿触均发中断*/
- EIFR=0XFF; /*清除中断标志*/
- EIMSK|=(1<<INT1); /*中断使能*/
- Feed_TPL5010();
- }
中断服务函数 如下:
- ISR(INT1_vect)
- {
- printf("\n\r INT1\r\n");
- //EIFR=0XFF;
- }
|