--/--/--  --:--    スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2009/10/16  03:59    秋月300円液晶動作成功
近日に行われる学校の文化祭では、
部員に1人1つずつ回路を展示してもらうことにしました。
なので、何を出そうか考えた結果、最初はOLEDで回路作ろうかと考えましたが、
レポートで今から回路を作るには到底間に合わなそうだったので、
以前製作していた秋月液晶のプログラムを見直して
画像を今度こそ表示させようと思いつきました。

半年以上前にいじっていたあの秋月液晶ですが、
前回はうまく表示できずに撃沈していました。
あの時の失敗は、
・連長圧縮した画像の解凍処理に時間がかかり、表示するのに追いつかない
・解凍の関係でクロックが一定にならず、液晶にラインノイズが出てしまった
という2つの問題がありました。

まず、画像をどのように保存するかですが、
今まで通りbmpからパレットとピクセルデータを配列に抜き出す方法にしました。
前回はここで連長圧縮を行っていましたが、
改めて考えてみると、既にパレットを利用した描画方法を採用しているので、
1ドットの色を指定するのはパレット番号を格納した1byteだけになります。
よって400*96*1=38400byteで済むことに気が付きました。
あとはRAMに256byteのパレットデータがRGBで3つ分保存すれば、
十分画像一枚ならばFLASH上に圧縮無しで保存できることがわかりました。

次に、クロック出力ですが、
今回はタイマの割り込みでクロックをトグル動作させるようにしたので、
必ず一定周期になるようにしました。
メインの中の表示ルーチンで表示データをポートに出力し、
割り込みでクロックをトグルさせて、立下りで液晶にデータを入力させます。
立下りすると、またメインルーチンでは次のドットのデータを出力します。
このように必ず割り込み出力するクロックの1サイクル以内に
データをポートに出力しておく必要があります。
なので、割り込み周期は出力クロック1サイクル内に発生する処理の中で
一番長い処理にあわせることになります。
もちろん一番長い処理は画像の描画部分です。

このように、前回の問題点を改善することによって、
今度こそ画像の表示を目指してみました。結果・・・
秋月液晶動作成功
今度はうまく表示できました!
画像は白黒の画像ですが、実際はフルカラー、フルサイズで動作しています。
割り込み周期は4.5usにごとになりました。
トグル動作なので、実際クロックは9us 1サイクルで出力されています。
この周期は実際にいろいろ試しながら導きました。
ぎりぎり最長処理が1サイクルに収まる周期です。
よって、1サイクル時間にドット数を掛ければリフレッシュレートがわかります。
0.0000045 * 2 * (155 + (325 * 16) + ((400 + 109) * 96)) = 0.487971s
よって、約2Hzのリフレッシュレートが実現できました。
液晶にしてはリフレッシュレートがとても遅いですが、
フルサイズ、フルカラー、そしてAVRでの出力なので、この辺りが限界だと思います。

とにかくちゃんと表示できてよかったです。
STRVさんがAVRで出力できていたので、なんとかなるとは信じていましたが。
とりあえず、今回はこの秋月液晶を文化祭で展示したいと思います。


さて、おまけですが、
昨日15日より、学校がインフルエンザ感染者多数によって休校になりました。
19日まで続くそうです。どうなることやら・・・。
Secret

TrackBackURL
→http://amenotiyukizora.blog76.fc2.com/tb.php/316-0754a796
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。