参考: 定番!ARMキット&PIC用Cプログラムでいきなりマイコン制御[DVD-ROM付き] (マイコン活用シリーズ), pp.99-102
Timer1 のクロックを 1 MHz (= 16 MHz / 4 クロック / 4 分周) にすると、Timer1 は 1 μsec (= 1/(1 MHz)) ごとにインクリメントする。
16 ビットカウンターであるので、被測定パルスの立ち上がりエッジで Timer1 をスタートして被測定パルスの立ち下がりエッジで Timer1 をストップすれば 1 μsec × (2^16-1) = 65.535 msec までのパルス幅が測れる。
main.c
// テキスト p.101、リスト 11-2 のまま
.ino
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(50); digitalWrite(13, LOW ); delay( 1); }