トップ 一覧 検索 ヘルプ RSS ログイン

Tips-割り込みの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!ESP32-micropython
 from machine import Pin,Timer
 from time import sleep
 
 pin=Pin(19, mode=Pin.OUT)
 
 def led(t):      # t はタイマのインスタンスが入っている
     pin.value(not pin.value())
 
 t0 = Timer(0)           # タイマは0〜3が指定可能
 #20mSec 毎に led を呼び出す
 t0.init(period=20, mode=Timer.PERIODIC, callback=led)
 
 sleep(5)
 t0.deinit()

! STM32f103 - arduino-ide
https://scrapbox.io/ArduinoSTM32/HardwareTimer

 #define LED_PIN  PC13  // OnボードLED timer2 1CH用出力ピン
 
 uint8_t sw = LOW;
 
 // 割り込み処理関数
 void handle_timer() {
  if (sw == LOW) {
    sw = HIGH;
  } else {
    sw = LOW;    
  } 
  digitalWrite(LED_PIN, sw);
 }
 
 void setup() {
  pinMode(LED_PIN, OUTPUT);
  Timer2.pause();                   // タイマー停止
  Timer2.setPrescaleFactor(7200);   // システムクロック 72MHzを10kHzに分周
  Timer2.setOverflow(5000);        // 最大値を0.5秒に設定
 
  Timer2.attachInterrupt(           // 割り込みハンドラの登録
      TIMER_UPDATE_INTERRUPT,       // 呼び出し条件は、カウンターオーバーフロー更新時
      handle_timer                  // 呼び出す関数
    );  
 
  Timer2.setCount(0);               // カウンタを0に設定
  Timer2.refresh();                 // タイマ更新
  Timer2.resume();                  // タイマースタート
 }
 
 void loop() {
 
 }