Volatile
出自YFRobotwiki
volatile 關鍵字
volatile是一個稱為變數限定符的關鍵字,通常在變數的數據類型之前使用,以修改編譯器和後續程序處理變數的方式。
聲明變數volatile是編譯器的指令。編譯器是將C / C ++代碼轉換為機器代碼的軟體,這是Arduino中Atmega晶元的真實說明。
具體來說,它指示編譯器從RAM中載入變數,而不是存儲寄存器,存儲寄存器是存儲和操作程序變數的臨時內存位置。在某些條件下,存儲在寄存器中的變數的值可能不準確。
當變數的值可以被超出其出現的代碼段的控制之類的東西(如同時執行的線程)改變時,變數應該被聲明為volatile。在Arduino中,唯一可能發生的地方是與中斷相關的代碼部分,稱為中斷服務程序。
示例
// toggles LED when interrupt pin changes state int pin = 13; volatile int state = LOW; void setup() { pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE); } void loop() { digitalWrite(pin, state); } void blink() { state = !state; }
擴展閱讀
更多建議和問題歡迎反饋至 YFRobot論壇