2009年2月4日水曜日

ETロボコン

BRICKOSの通常の光センサーの入力は、下記のようになると思う
hikari = LIGHT(SENSOR_1);

これは、このようになり
hikari = (147 - ds_scale(SENSOR_1)/7);

さらに、こうなる
hikari = (147 - ((unsigned int)(AD_C)>>6)/7);

このマイコンのA/D変換は、10bitで行われるため、光センサー値は 0~1023の値に変換される
わざわざ割り算までして LSB を落とすのはもったいないので、
ds_scale(SENSOR_1)
を使うと良い
6ビットシフトは、16ビットの上位10ビットにA/D変換の結果が取り込まれるので6ビットシフトをしている
しかし、これでは光センサー値の大小の関係が反対になってしまうので、
hikari = (1024 - ds_scale(SENSOR_1));
とすると使いやすくなると思う

これにより、白、グレー、黒の差が大きくなる

0 件のコメント:

コメントを投稿