nRF Timer
....\nRF5_SDK_17.1.0_ddde560\examples\peripheralの下にあるtimerのフォルダを
myprojectsにコピー。
フォルダー名を適当な名前に編集(ここでは、5_timer)
...\examples\myprojects\5_timer\pca10056\blank\ses
の下にある、timer_pca10056.emProjectをダブルクリックしてSESを立ち上げる。
flash_placement.xml
も開いて、".text" .rodata" の後ろのsize="0x4"を削除するのも忘れずに。
nRF52840のマニュアルを覗いてみると、
https://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.1.pdf
5x 32-bit timer with counter mode
5つのTimer0~4が用意されているのがわかる。
mainの中を綺麗にする。while(1)の部分は残しておく。そもそも__WFI();というコマンドしか入っていない。
これはWait For Interrupt(割り込み待ち)の略で、インターラプトがあるまでMPU寝てなさいという命令。これは残しておく。
const nrf_drv_timer_t TIMER_LED = NRF_DRV_TIMER_INSTANCE(0);
の部分はそのまま使うので、残す。
nrf_drv_timer_t は定義を見てやると構造体でタイマーを使う時に必要な設定を成す。
TIMER_LED は任意の名前でタイマーの名称。
これに値を入れてやるのがNRF_DRV_TIMER_INSTANCE(0)のインスタンスの部分。
ゼロは5つあるタイマーのうちタイマー0を使う。TIMER1を使うなら1。
ようするにタイマーゼロを使う時はおまじないのように置けってこと。
タイマーを使う時は、#include "nrf_drv_timer.h"をインクルードする。
nrf_drv_timer
nrfx_timer
コメント
コメントを投稿