演習3:複数のLEDを光らせる(回答例)

回答例

演習1

micro:bitの LEDの回路図 を見るとわかるように、ROW1,ROW2およびCOL1,COL4を動作させると、それらの信号線の交点に配置されたLED4個がすべて点灯してしまうため。

課題2

課題3

NRF_TIMER2->CC[0] = 62500/100; と変更するとタイマー割り込みが100分の1秒(10ms)毎に発生するようになる。目の残像減少によって、交互に点滅している2個のLEDが常に点灯しているように見える。

課題4

LED[5][5] の配列をメインプログラムで操作、それを割り込み関数の中で参照してLEDをオン/オフするサンプルプログラム。ROWLIST[][][] という3次元配列にLEDアレイの電気回路とLEDの物理的位置を保持しています。

全く同じ動作をする別の回答例です。LEDARRAY[][][] という3次元配列にLEDアレイの各LEDの接続されるROW・COLの番号を保持しています。上の回答例と比べると、少し無駄な処理が増えますがプログラムはこちらの方が理解しやすいかもしれません。

課題5

回答省略

コメント