あやの
NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/
【今日も難しい話です】
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。
ほぼ調べたメモ代わり状態ですw
HEX ファイル上のLOAD OFFSETが0008の時、PICのアドレスは4なのですね。
だから、ArdPicProgHostのソースでアドレスを取り込む部分で、
intDataAddress = Val("&H" + strSourceFileIntelHex.Substring(intFilePointer, 4)) >> 1
の様に「>>1」で右に1bitずらしていたのですね。
このint型への変換でValを使っていますが、これは負号付き16bitなので、
0xE000が来ると、16bit負号ありで10進数に変換されると、「-8192」になって、
おかしくなってしまうのですね。
int型から、Long型に変えて、
longDataAddress = Clng("&H" + strSourceFileIntelHex.Substring(intFilePointer, 4)) >> 1
10進数変換は、Clng()を使うと良さそう。
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。
ほぼ調べたメモ代わり状態ですw
HEX ファイル上のLOAD OFFSETが0008の時、PICのアドレスは4なのですね。
だから、ArdPicProgHostのソースでアドレスを取り込む部分で、
intDataAddress = Val("&H" + strSourceFileIntelHex.Substring(intFilePointer, 4)) >> 1
の様に「>>1」で右に1bitずらしていたのですね。
このint型への変換でValを使っていますが、これは負号付き16bitなので、
0xE000が来ると、16bit負号ありで10進数に変換されると、「-8192」になって、
おかしくなってしまうのですね。
int型から、Long型に変えて、
longDataAddress = Clng("&H" + strSourceFileIntelHex.Substring(intFilePointer, 4)) >> 1
10進数変換は、Clng()を使うと良さそう。
あとは、 RECTYPE = 02 の時の、拡張セグメントアドレスレコードの演算部分を追加して
あげればPIC12F1822の対応ができそう。
!!!
えーPIC12F1822の,VIHHって、Min8.0V 〜 Max9.0Vなんですか!
詰みました。
PIC12F683は12Vで良いのに、電圧変えないといけないのかぁ・・・
PR
ブログ内検索
カテゴリー
最新記事
(12/31)
(12/31)
(12/29)
(12/23)
(12/18)
リンク
プロフィール
HN:
あやのすけ
性別:
非公開
無題
無題
デバイスを認識させてから書き込み電圧を設定するというロジックが
必要なんですね。
可変昇圧電源を使っているのでpicのタイプで
自分で電圧調整でも良いかな。。。
めんどくさく無いようにするんだったら
可変電源ですね。