Re: MPLAB X 使用問題 -PIC16F1614

作者 Ryang 於 2018年05月21日 10:25:07
引用:

a780917a 寫道:
感謝版大的回覆,不好意思再請教一個問題

我有數值想要在中斷時提取出來到主程式做運算
我在副檔案interrupt_manager.c 裡宣告一個字元,
unsigned long int PCR;
這個字元可以在主檔案main.c直接使用嗎?
還是應該在主檔案進行宣告呢?


休假期間沒帶到電腦,現才回答。
中斷函數當然可以使用變數,只要加上 volatile 的保留字即可。

volitale unsign char My_Int_Var;

加入 volitail 的用意是告訴編譯器不可對此變數做最佳化的編譯。

至於主程式裡要使用到中斷函數所宣告的變數則要再加 extern 的保留字。

extern volatile unsign char My_Int_Var;

extern 是告訴編譯器,此變數已在別的程式裡宣告過,彼此是同一個變數,共用記憶體。

以上在 W401 的教育訓練裡的第七章有詳細的說明。

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=22295&post_id=78172