IARAVR中斷服務(wù)程序問題
今天調(diào)試程序遇見了一個IARAVR中斷服務(wù)程序的問題:this kind of pragma may not be used... 花了一個小時調(diào)試發(fā)現(xiàn)的問題差點令我崩潰。
以定時計數(shù)器0中斷服務(wù)程序為例:
#pragma vector=TIMER0_OVF_vect
_interrupt void Timer0(void)
{
。。。。。
。。。。。。。
}
調(diào)了很長時間也沒發(fā)現(xiàn)錯誤,當參見官方實例,一不小心發(fā)現(xiàn)interrupt前要加兩個“下劃線”。我勒個去。。。
#pragma vector=TIMER0_OVF_vect
__interrupt void Timer0(void)
{
。。。。。
。。。。。。。
}
對比上面兩段,特別是放在兩個程序上,雖然看得出有些差別,但下劃線的長短一般會認為不同軟件的顯示差異所致,所以認為只是同一根下劃線。。。