外部中斷引腳號:INT0 PD2 , INT1 PD3 , INT2 PB2
寄存器說明:
通用中斷控制寄存器:GICR
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
INT1 |
INT0 |
INT2 |
--- |
--- |
--- |
IVSEL |
INCE |
在GICR寄存器中,在中斷的配置只配置INTn,如
開INT0 :GICR |= 0x40;或GICR |= (1<<INT0)
開INT1和INT0:GICR |=0xc0;或GICR |= (1<<INT0) | (1<<INT1)
開INT2:GICR |=0x20。或GICR|=(1<<INT2);
MCU控制寄存器 – MCUCR
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
SM2 |
SE |
SM1 |
SM0 |
ISC11 |
ISC10 |
ISC01 |
ISC00 |
高4 bit暫時先不理會,主要是看低4 bit
ISCnx,n表示中斷0.1,x表示0.1
ISCn1 |
ISCn0 |
說明 |
0 |
0 |
INTn爲低電平觸發 |
0 |
1 |
INTn引腳上任意的邏輯電平變化將引起中斷 |
1 |
0 |
INTn下降沿產生異步中斷 |
1 |
1 |
INTn上升沿產生中斷 |
將INT1設置爲下降沿觸發:MCUCR =0x80.
將INT0設置爲低電平觸發:MCUCR =0x00
MCU控制與狀態寄存器:MCUCSR
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
JTD |
ISC2 |
---- |
JTRF |
WDRF |
BORF |
EXTRF |
PORF |
值需要說明ISC2即可,其餘的請看相關的配置說明
ISC2:0,下降沿中斷 如MCUCSR = 0x00
1, 上升沿中斷 如MCUCSR = 0x40
通用中斷標誌寄存器 – GIFR
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
INTF1 |
INTF0 |
INTF2 |
--- |
---- |
------ |
---- |
---- |
寫1清除中斷標誌
void Inti_INT1(void)
{
DDRD &= 0xF7;
GICR|=0x80; //INT1 enable
MCUCR=0x00;//低電平觸發
GIFR=0x80; //clear INTF
}