Darkside(https対応しました)

2013年1月2日(水) 19:03

処理落ち

 尾灯LEDの配線にオシロのプローブを取り付け、PICの処理時間を調べる。
 問題となるのは、前後左右のプロポ入力を左右のキャタピラの動きに変換する処理。テーブルを引いて内分計算を行うのだが、十分な精度を確保した乗除算が絡むため非常に荷が重い。6チャンネル分の受信機パルスを読み終わった後で、次の読み始めまでに何ミリ秒の余裕があるのか?
 その数ミリ秒のうちに、変換計算が終わっているのか?

 CH1のパルスが到着するのを単に待っているだけの期間、尾灯LEDにHを出力するようにしてみた。これをオシロで見ると・・・

 どうも周期が33ミリ秒ぐらいになっている。つまり、受信機パルスが30Hzということだ。これまでいろいろなラジコン受信機のパルスを扱ったが、50Hzか60Hzだった。30Hzというのは初めてであり、60Hzが処理落ちしている可能性が高い。
 そこで、サーボ直結となっているCH3にもオシロを接続し、受信機パルス直読してやる。

 想像通り、CH3は60Hzで送り出されている。
 ラジコン受信機のパルスはニュートラルで幅1.5ミリ秒。通常は1〜2ミリ秒の範囲で幅が変化する。受信機は7チャンネルまで対応可能なタイプだが、最大限14ミリ秒あれば全チャンネルの送信が完了する。周期16.7ミリ秒で十分に働く。
 しかし、50Hzとなる周期20ミリ秒と、この16.7秒の差はPICにとっては大きい。6チャンネル分のパルスを読み終わってからの時間が余りにも短く、処理落ちを防いで変換処理を終えるのは無理だ。

 だとすれば逆に、毎回確実に処理落ちさせれば良い。過去にはパルスを2回に1回だけ読み取るプログラムで戦車用アンプを作ったこともある。だが、それで実用上の問題は感じられなかった。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4