ESP32 開発備忘録
割り込みのテスト /************************************************ * ESP32 interrupt minimum test * Wemos D1 mini ESP32 v1.0 * 2024/3/27 * *********************************************/ #define LED_PIN 2 // 1. タイマー宣言 hw_timer_t * timer = NULL ; hw_timer_t * timer1 = NULL ; volatile int interruptCounter = 0 ; int totalInterruptCounter = 0 ; portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; // 6. タイマー呼び出しされるコールバック関数 void IRAM_ATTR onTimer () { portENTER_CRITICAL_ISR ( & timerMux); digitalWrite (LED_PIN, ! digitalRead (LED_PIN)); portEXIT_CRITICAL_ISR ( & timerMux); } // タイマー1呼び出しされるコールバック関数 void IRAM_ATTR onTimer1 () { portENTER_CRITICAL_ISR ( & timerMux); interruptCounter ++ ; portEXIT_CRITICAL_ISR ( & timerMux); } void setup () { Serial . begin ( 9600 ); pinMode (LED_PIN, OUTPUT); // 2. タイマー作成。0番のタイマーを80クロックで1カウント、カウントアップ timer = timerBegin ( 0 , 80 , true ); // 3. 割り込みの設定。第一引数は設定するタイマー、第二引数は割り込み関数 timerAttachInterrupt (timer,