(2014.6.23 作成)
Arduino UNOでは16bitタイマーがひとつしかありませんが、このタイマーはArduinoライブラリではmillis/ microsで使用されていますので自由に変更が出来ません。このためこのTimerクラスはmillis / micros関数を利用して作らざるを得ず、とても制約の多いクラスになりました。
コンストラクタ |
||
プロトタイプ |
Timer( const DKS::TimeUint &timeUnit =
DKS::TimeUnit_MilliSec); |
|
戻り値 |
なし |
|
引数 |
DKS::TimeUint &timeUnit |
タイマの動作単位 usまたはms |
備考 |
|
以下のコードで4ms周期でGPIOを上下させます。
#include <Wire.h> //最初のコンパイル時だけコメント解除 #include <SPI.h> #include <TimerOne.h> #include "DKS_GPIO_Arduino.h" #include "DKS_Timer_Arduino.h" DKS::DigitalOut led; DKS::Timer tim( DKS::TimeUnit_MilliSec); uint32_t countValueNew(0), countValueOld(0); void setup() { const int ledPin = 4; led = DKS::DigitalOut(ledPin); tim.Start(); } void loop() { countValueNew = tim.ReadCounter(); if ( (countValueNew-countValueOld) >= 4) { led.toggle(); countValueOld = countValueNew; } }