アマチュア無線や電子工作,バイクの話などを徒然なるままに書き散らすメモ程度のblogです.


by jq1ocr

トラ技 LPC810 プログラムをちょい変え

付録CDのプログラムを言われるがままに書き込んで,動作を確認したわけですが,気になる点を直してみることにしました.それは
(1)LED がまぶしい
(2)気温の単位がCになってる
(3)気圧の単位がPaになってる
ところです.

まず(1)のLEDがまぶしいというのは,気温と気圧のリフレッシュ時にLEDが点灯するのですが,私のつけた LED が 470Ωでも正面から見るととてもまぶしいので,動作が確認できた以上は消したいと思いました.これには LED を ON/OFF してるところを停止すれば良いので,main.c を見て該当箇所をコメントアウトします.具体的には #ifdef TEMP 内の onLED(); (142行目)を //onLED(); にします.そしてこれに呼応する #ifdef BAR 内の offLED(); (163行目)も同様にコメントアウトしておきます.

次は(2)は後回しにして(3)を直しましょう.これは main.c の #ifdef BAR 内で,コメントアウトされている部分(//for hPa とコメントされている行)の行頭の // を消して活かせばOK.代わりにその下の行の行頭に // を入れてコメントアウトします.また PutsLCD("Pa"); の文字列部分を "hPa" にします.

(2)はちょっと面倒です.というのも,141行目の PutsLCD("C "); の C に小さい○をつけることができないためです.実際半角の半濁点をペーストしてみると化けてしまいます.そこで直接半濁点のコードをLCDに送ってみましょう.PutsLCD は LCD.c 内で定義されていて,その中身はデータが空になるまで PutI2C に一つずつデータを送るようになっています.そこで,main.c の PutsLCD("C "); の前に一行足すことにしました.半角の半濁点は LCD の取説を見るとコードは 0b11011111 ですので,それを PutI2C で送り込みます.
PutI2C(DAT,0b11011111, AQM0802_ADDR);
もちろんデータは2進数でなく,0xdf でも同じです.

さて動かしてみましょう.Quick メニューから Build 'LPC810_DEMO' をクリックして,実行ファイルを生成します.次いで上のメニューバーから 'Program Flash' をクリックし書き込ます.動かしてみるとこんな感じになりました.
d0106518_0203184.jpg
今のところはまだ LPC の利点を活かしたことができそうにありませんが,スイッチマトリクスなどは面白そうですね.自分の場合 AVR では用意された機能ではなく,最初からソフト的に書いちゃうことが多かったので,うまく動くまで苦労することも多々あるのですが,LPC ではなるべく楽ができるように勉強しようと思います.
[PR]
by jq1ocr | 2014-01-13 23:40 | マイコン・電子工作 | Comments(0)