chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

nrf51822のLチカをタイマー(RTC)と割り込みで実装してみる

前回nrf51822(micro:bit)でライブラリを使わずLチカを実装した。チカチカせるのはWAITループでぐるぐる回していた。サンプルソースのレベルならこれでOKだけど、実用的なプログラミングではぐるぐる回りしていると、ボタン押下等のイベントが取れないので、タイマ割り込みでチカチカさせる必要がある。
というわけで、SysTickと呼ばれるTimerハードと割り込みプログラミングでLチカを実装してみる。

少し検索していると、SysTick自体のハードは無いそうだ。だからカウンタ(割り込み)で代用しているらしい(らいしというのは、自分がタイマ周りを完全に理解できていないため)。

さらに調べると、、カウンタにTICKイベント、TICK割り込みが存在して、TICKが立つのは、カウンタ変数[COUNTER]が加算されるタイミングらしい(仕様書より)。

■参考にしたライブラリソース
https://github.com/NordicSemiconductor/Nordic-Thingy52-FW/blob/master/external/sdk13/components/drivers_nrf/systick/nrf_drv_systick.c

(ローカルフォルダ)
~/tech/uc/nrf51822/nRF5_SDK_12.3.0_d7731ad/components/drivers_nrf/systick/

■割り込み駆動にしてみるが割り込まれない

https://github.com/goofacz/cortex-m-minimal-c