2010年
6月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2010-06-23 busyが読めないが

_ AVRで液晶表示

数年前からやろうと思って時間が無くてできなかったが、液晶の表示に成功した。AVRでプログラムを組んでいると、バグがあっても状態を出力する手段がほとんど無いので、バグを発見するのに非常に苦労する。液晶で状態を表示できるようになれば、非常に快適になると思っている。

今回使ったのは、秋月で300円で売っていた16文字の液晶モジュールで、HD44780準拠の標準的なものだ。ライブラリを書いている人もたくさんいるので、これを使っても良いのだが、それでは面白くないので、自分で適当に書いてみた。8bit通信と4bit通信ができるのだが、pinを節約するために、4bit通信を選択する。それでも制御信号が3pin必要なので、7pinも費やしてしまうことになる。tiny2313の通常使える17pinから7pin使うと、残りは10pinになってしまう。

いくつかトラブったことろはあるが、一応の表示には成功した。まず、文字コードを書き込むだけでは表示が消えてしまい、その後で表示オンの指示を出さないといけなかった。マニュアルにはそんな記述は見当たらない気がするんだけどな。あと、busyの読み込みにはなぜか失敗してしまうので、適当なwaitの後で次のコマンドを送るようにした。

面倒なのは、16文字のアドレスが連続していないことだ。他の液晶との互換性のためだろうが、少し処理を書き加えないといけない。

バックライトはないけど、別に見にくいわけではないし、一応の表示ができるようになったので良しとしよう。