Raspberry Pi Pico タイマ割り込みでLチカ(VSC + C言語)
前回新しいプロジェクトを作成する方法がわかったので、今回はタイマ割り込みでLチカをしてみる。タイマ割り込みは色々な制御を行うので真っ先に抑えておきたい。またUSB経由でシリアルポートに文字を送ることも行う。新しいプロジェクトの場合printfの設定を行う必要がある。
CMakeLists.txtを変更
上述した通りsdioのprintfの出力先を設定する。 プロジェクト名が”my_project”の場合USB経由のprintf有効にする場合は下のように追加で記述する。
pico_enable_stdio_usb(my_project 1)
USB経由を有効にしたらUART経由は無効にする。それは下のように記述する。
pico_enable_stdio_uart(my_project 0)
CMakeLists.txtの全体は下のようになった。
ソースコード
今回はタイマ割り込み設定を2通り行った。
- add_alarm_in_ms()
- add_repeating_timer_ms()
add_alarm_in_ms() は一回だけタイマ割り込み関数を呼び出す設定を行う関数。
add_repeating_timer_ms()は繰り返しタイマ割り込み関数を呼び出す設定を行う関数。
今回はオンボードLEDを一回だけの割り込みでONして、外付けLED(GPIO15)を繰り返し関数でON/OFFを行う。
ソースコード全体は下のようになった。
動作
ブレッドボードのタクトスイッチはリセットスイッチで3V3_ENに接続されていてONするとGNDに電圧を落とす。これを付けると書込みのときラクで、これがないとUSBを毎回挿抜しないといけない。