會發現這個MCC產生的bug正好是在熟悉PIC中斷的使用過程中所發現的。
一開始是先把ADC的中斷給設好,Sample Rate是19.6078kHz,
使用MCC產生Code後,所有的中斷源好像都會執行在同一函式
再透過flag去判斷是哪一個中斷所觸發的
 
使用MCC產生ADC中斷程式
 
此時在用MCC產生Timer 1的中斷程式,設置1秒觸發一次,程式會依序用else if加在ADC中斷程式的下面
 
 
但是實際在實行時,中斷永遠只跑到ADC的中斷而不會執行Timer 1的中斷,這也就是我發現的bug
 
實際上只要把程式修正為下圖,就可以解決此問題
原因是因為ADC的sample rate比timer 1還要快,且用if...else...會造成程式二擇一執行,
就會漏掉timer 1的中斷
 
 
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 凱文先生的部落格 的頭像
    凱文先生的部落格

    凱文的八卦俱樂部小天地

    凱文先生的部落格 發表在 痞客邦 留言(0) 人氣()