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







 

コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

CH9329で日本語キーボード109で正しく表示する方法