PIC16F1789 & MPUトレーナー 10 / パルス幅を測る

参考: 定番!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 までのパルス幅が測れる。
f:id:ti-nspire:20170322142525p:plain:h250 f:id:ti-nspire:20170322141602j:plain:h250 f:id:ti-nspire:20170322141751p:plain:h250 f:id:ti-nspire:20170322141548j:plain:h250


main.c

// テキスト p.101、リスト 11-2 のまま


.ino

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH); delay(50);
  digitalWrite(13, LOW ); delay( 1);
}