無料ブログはココログ

« C-SizeDCC 改訂版3 | トップページ | C-Size DCC »

2020年9月22日 (火)

C-SizeDCC 改訂版4

レベル変化割り込み

前回の写真に赤いマスコンレバーが写ってます。ロータリーエンコーダの取り込みですが、INT1のD3をPWMに振ったので汎用ポートのレベル割り込みを使う事にしました。ATMEGA4809の割り込み設定はPORTレジスタをあれこれ弄らなくてはいけない様でどうしようと思いましたが、ダメ元でattachInterruptを使ってみたらあっさり動きました。

#define ENC_A 4
#define ENC_B 5
getSpeedLib::getSpeedLib()
{
...
attachInterrupt (digitalPinToInterrupt(ENC_A), ENC_READ, CHANGE );
attachInterrupt (digitalPinToInterrupt(ENC_B), ENC_READ, CHANGE );
...
}
Arduino IDEのシリアルモニタ
--------------------------
twaydcc C-Size DCC r0.2
--------------------------
on
ENC_READ:1,0,1,4
ENC_READ:1,1,2,4
ENC_READ:1,2,3,4
off
ENC_READ:0,3,0,5 // 1ノッチ
AnalogSpeed:1,254,255 // 加速開始
AnalogSpeed:2,253,255
AnalogSpeed:3,252,255
AnalogSpeed:4,251,255
on
ENC_READ:3,0,3,5
ENC_READ:3,3,2,5
ENC_READ:3,2,1,5
off
ENC_READ:0,1,0,4 // ノッチオフ

« C-SizeDCC 改訂版3 | トップページ | C-Size DCC »

コントローラ」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« C-SizeDCC 改訂版3 | トップページ | C-Size DCC »