Darkside(https対応しました)

2012年09月05日の記事

2012年9月5日(水) 21:23

面倒アセンブラ

 出力スイッチが中央の場合はボリュームによる可変だが、最高出力と最低出力を内分計算するのが普通の発想である。

L+(H-L)×vol/4095

みたいな。
 これ高級言語だと一瞬だが、PICのアセンブラだと凄まじく面倒な計算になる。
 4095で割るのは4096に妥協するとしても、足し算引き算だって12ビット精度を要求される。PICは命令機能が貧弱で、いちいちキャリーを別記述せねばならない。8ビット超えると、とにかく何もかもが面倒。掛け算なら分かるが引き算でさえ近付きたくなくなるアセンブラって・・・

 命令の機能が、せめてZ80並であれば。
 だったらPIC上位版を使ってCで楽々記述すりゃ良いだろ?と言われそうだが、コストのみならず消費電力も問題になる。強力なCPUは消費電力が増える。PIC16F88 でさえ複数使ってあれこれやる場合はワット数気にしているのに。
 命令は強力である方が良いが、何事もトレードオフである。自分としてはPIC16F88にZ80や6809あたりの機能を持った命令が乗ってるぐらいが最適である。しかし何が最適かという考えはユーザーによって違い、ピタリとして製品ラインナップが存在しない場合も多々あるだろう。

 苦労して計算式を実装し動かすと、案の定思い切りバグっている。こういう場合にダミー抵抗は便利で、過大電流が流れても何も壊れずに済む。しかし、バッテリーが過大に消耗する。デバッグ開始直後にローバッテリーになってしまった。
 3本のバッテリーを外し、まず1本目の充電。ラジコン急速充電器のチャージ積算は4440で充電終了。容量が公称4500なので、ローバッテリー停止のタイミングは良い感じである。続いて2本目の充電を開始して間もなく、充電器の液晶表示がバグった。湿度が高過ぎるなら1本目からおかしくなるはずで、熱暴走の可能性が大。
 涼しくなるのは、もう少しの辛抱。今はまだ励起LDだけでなく充電器にも辛い季節である。

written by higashino [ファイバーレーザー] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL
Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4