あやの
NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/
指摘されるまで気にもしていなかったのですが、 コマンドステーションのDCS50Kのスピードステップの
設定は128ステップを使っていました。
みなさん設定を変更して、28ステップで使うのが普通との事で、ちょっと調べてみました。
(そもそも、SmileFunctionDecoderで使っているNMRAのライブラリが対応しているのでしょうか・・・)
まずは、DCCパケットの違いを表でまとめてみました。
なるほどー。今のDCC速度計の作りでは、14/28ステップは取得できません・・・
※赤字:固定値
14/28ステップの数値に対するbit
上位ビットで14/28ステップを切り替えているのですね。
DCCの仕様書等ではなんだかわかりにくかったので、
DCS50Kの設定を14/28/128と変えながら、DCCパケットモニタで内容を確認しました。
DCC速度計は14/28/128ステップの判断は、2バイト目のbit7,bit6で判断すればいいかな。
設定は128ステップを使っていました。
みなさん設定を変更して、28ステップで使うのが普通との事で、ちょっと調べてみました。
(そもそも、SmileFunctionDecoderで使っているNMRAのライブラリが対応しているのでしょうか・・・)
まずは、DCCパケットの違いを表でまとめてみました。
なるほどー。今のDCC速度計の作りでは、14/28ステップは取得できません・・・
※赤字:固定値
14/28ステップの数値に対するbit
上位ビットで14/28ステップを切り替えているのですね。
DCCの仕様書等ではなんだかわかりにくかったので、
DCS50Kの設定を14/28/128と変えながら、DCCパケットモニタで内容を確認しました。
DCC速度計は14/28/128ステップの判断は、2バイト目のbit7,bit6で判断すればいいかな。
PR
ブログ内検索
カテゴリー
最新記事
(12/31)
(12/31)
(12/29)
(12/23)
(12/18)
リンク
プロフィール
HN:
あやのすけ
性別:
非公開
無題
無題
NmraDcc.cppを斜め読みしてみました。
128アドレス
notifyDccSpeed( Addr, speed, Data1 & 0b10000000, 127 ) ;
28アドレス
notifyDccSpeed( Addr, speed, Cmd & 0b00100000, 28 ) ;
4番目に128なのか、28なのか引数で渡されていますね。
スマイルファンクッションデコーダーは、
//DCC速度信号の受信によるイベント
extern void notifyDccSpeed( uint16_t Addr, uint8_t Speed, uint8_t ForwardDir, uint8_t MaxSpeed )
{
if ( gDirection != ForwardDir)
{
gDirection = ForwardDir;
}
gSpeedRef = Speed;
}
こんな感じに作られているので、uint8_t MaxSpeed をちゃんと見て、4.57倍したり(^^;
28ステップ用の処理追加が必要ですね。