Last active
August 2, 2019 08:52
-
-
Save Tamakichi/5afee6bb6c3760b95ad033df4034006f to your computer and use it in GitHub Desktop.
STM32 Arduino タイマー利用サンプル
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// STM32 blue pill | |
// タイマー利用サンプル by たま吉 2017/01/05 | |
// オンボードと外部LEDを0.5秒周期で点滅させる | |
// 参考情報 | |
// HardwareTimer | |
// http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/latest/lang/api/hardwaretimer.html#using-timer-interrupts | |
#define LED1_PIN PC13 | |
#define LED2_PIN PA1 | |
uint8_t toggle1 = 0; | |
uint8_t toggle2 = 0; | |
void setup() { | |
pinMode(LED1_PIN, OUTPUT); | |
pinMode(LED2_PIN, OUTPUT); | |
Timer1.pause(); // タイマー停止 | |
Timer1.setPrescaleFactor(10000); // システムクロック 72MHzを7200Hzに分周 | |
Timer1.setOverflow(7200); // カウンタ値7200でオーバーフロー発生 | |
Timer1.setCompare(1, 1800); | |
Timer1.attachInterrupt(1, handler_led1); // コンパレータ1にて割り込み発生 | |
Timer1.setCompare(2, 7200); | |
Timer1.attachInterrupt(2, handler_led2); // コンパレータ2にて割り込み発生 | |
Timer1.refresh(); // タイマーの更新 | |
Timer1.resume(); // タイマースタート | |
} | |
void loop() { | |
} | |
void handler_led1(void) { | |
toggle1 ^= 1; | |
digitalWrite(LED1_PIN, toggle1); | |
} | |
void handler_led2(void) { | |
toggle2 ^= 1; | |
digitalWrite(LED2_PIN, toggle2); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment