micro:bit 入力パルス幅の測定
#include "MicroBit.h" MicroBit uBit; int main(void){ // IN レジスタからは、各 GPIO ラインへの入力信号が H (1) なのか L (0) なのかが読み出せる。 // PIN_CNF[N] レジスタは、特定の GPIO ラインの状態が設定できる。 volatile unsigned int *IN = (u…
ポーリング方式ではなくイベントを利用してパルス幅を測ってみる。 #include "MicroBit.h" MicroBit uBit; // イベントハンドラーを定義する。 void getPulseWidth(MicroBitEvent e){ printf("%d\n\r", (int)e.timestamp); // コールされたらそのときのタイ…
今度は H、L の両方を同時に測ってみる。 #include "MicroBit.h" MicroBit uBit; int pulseIn(int OneZero){ uint32_t start; uint32_t end; uint32_t elapsedTime; while(uBit.io.P0.getDigitalValue() == OneZero){} // H (L) の途中だったら一旦 L (H) に…
SG から micro:bit の P0 端子にパルスを入力してそのパルス幅を測ってみる。10 マイクロ秒くらいまで測れる。 #include "MicroBit.h" MicroBit uBit; int main(void){ uBit.init(); uint32_t start; uint32_t end; uint32_t epalsedTime; while(1){ while(u…