AVR單片機的編程軟件不像51單片機哪樣單一,一句語言在不同的開發環境有不同的寫法,這點是我以前沒有遇到的。例如外部中斷在IAR環境下會使用#pragma關鍵字,而Studio中使用GCC的編譯器,編譯器中使用ISP(中斷向量)關鍵字來標示。ISP在Interrupt.h頭文件裏面進行了定義,使用之前勿忘了定義,中斷向量在iom128.h頭文件中進行了定義,可以直接使用,如外部中斷1可寫爲INT1_vector。下面介紹一下外部中斷的使用步驟:
1、設置相應的端口爲輸入模式;(DDRD=0xFD; //輸入模式 PORTD=0x02; //帶上拉電阻)
2、設置外部中斷屏蔽寄存器; ( SETBIT(EIMSK,1); )
3、設置觸發方式;(EICRA |=0x0A;)
4、設置控制和狀態寄存器;(MCUCSR=0x00;) (保守設置,可以不設置)
5、打開全局中斷。(SETBIT(SREG,7); )
以上SETBIT()函數在avr_macros.h頭文件(該文件在WinAVR-20071221\arv\include文件夾內)中進行了定義,使用時注意添加相應頭文件。中斷函數可直接調用關鍵字進行相關操作。例如:
ISP(INT1_vect)
{
............................................
}