close
會發現這個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的中斷
全站熱搜