ハードが大体正常動作しているようなので、プログラムをCで書き換えました
現状の問題点は電池の消耗が激しいこと。
そこで画面操作などのキー入力がしばらくないときCPUをSLEEPさせるようにCで記述してみました。
GPSのデータをLCDに表示する処理を1回するごとにカウンタを減算し0になったらSLEEP。
キー入力があったら割込みでwakeup、カウンタを再セットしています。
そこで画面操作などのキー入力がしばらくないときCPUをSLEEPさせるようにCで記述してみました。
GPSのデータをLCDに表示する処理を1回するごとにカウンタを減算し0になったらSLEEP。
キー入力があったら割込みでwakeup、カウンタを再セットしています。
失敗だったのは4つのタクトキーをRB0-RB3に接続していることです。このため割込みに有効なキーは
RB0(INT0)に接続された1個のキーのみになってます。
これをRB4-RB7につないでいればPORTB状態変化割込みで4個のキーがトリガに使えました。
RB0(INT0)に接続された1個のキーのみになってます。
これをRB4-RB7につないでいればPORTB状態変化割込みで4個のキーがトリガに使えました。
動作させてみると通常RUN中は約160mA、SLEEP中でもまだ110mA程度流れていて劇的には減っていません