FL12をPrgmrArduinoで書き込み(失敗) [その他]
結局FL12のアドレスをいまだに書き換えられないため、前から試そうと思っていたPrgmrArduino(たぶん、DirectModeでDCCデコーダに書き込めるツールだと思う)を試した。手持ちのもので実験しようと思い、途中まで組み立てたDSdec(初代)を使用した。DSdecはTimer1を12Vにドライブして使うが、PrgmrArduinoはTimer2を使う仕様のため、まずは、出力の9Pinと10Pinを3Pinと11Pinに変更し、+12V、GNDは今までの配線のままとした。イメージ写真は以下。
ただ、そのままコンパイルするとエラーが出る。ライブラリヘッダーの
#include "WProgram.h"
を
#include "Arduino.h"
に変更する。
すると、コンパイルは通るが、信号が出ない!
どうやらライブラリ内のDCCServiceModeScheduler.cppの
関数のTCCR2B |= _BV(FOC2A);をコメントアウトしてやる必要がある。
よくわからないが、プログラム内でこの命令が二回呼ばれており、一回呼ばれると、出力が始まり、もう一回呼ばれると出力されなくなると言うトグルスイッチなんだろうか?
で、信号は出るようになったのだが、FL12はおろか、EM13すら、なにも書き込めませんでした。
残念。
FL12使えないと、ヘッドライトとテールライトがつけられない・・・。
Kato D102の発売は7月に延びて円安の影響で値段上がるみたいだし。
(予約すらしてないが)
ただ、そのままコンパイルするとエラーが出る。ライブラリヘッダーの
#include "WProgram.h"
を
#include "Arduino.h"
に変更する。
すると、コンパイルは通るが、信号が出ない!
どうやらライブラリ内のDCCServiceModeScheduler.cppの
void DCC_service_mode_waveform_generation_hajime() { //force a toggle on OC2A so that pin OC2A will always complement pin OC2B //TCCR2B |= _BV(FOC2A); //enable the compare match interrupt TIMSK2 |= _BV(OCIE2A); }
関数のTCCR2B |= _BV(FOC2A);をコメントアウトしてやる必要がある。
よくわからないが、プログラム内でこの命令が二回呼ばれており、一回呼ばれると、出力が始まり、もう一回呼ばれると出力されなくなると言うトグルスイッチなんだろうか?
で、信号は出るようになったのだが、FL12はおろか、EM13すら、なにも書き込めませんでした。
残念。
FL12使えないと、ヘッドライトとテールライトがつけられない・・・。
Kato D102の発売は7月に延びて円安の影響で値段上がるみたいだし。
(予約すらしてないが)
2015-06-15 22:15
コメント(0)
トラックバック(0)
コメント 0