マイコン工作実験日記

Microcontroller を用いての工作、実験記録

ちょびっと改善

2009-08-11 23:43:42 | Weblog
LPC2388に接続しているLCDは、CMOSカメラの実験で使っていたものと同一のものです。ちょっと値が張るので、同じモジュールを差し替えて使っている次第です。このLCDは、16ビットパラレルでの接続ですが、データ信号16本に加えて、制御信号として/CS, /WR, /RD, RSの4本が必要なので、合計20本のGPIOを使っています。LPC2388で、この20本をどう割り当てるかですが、外部メモリは使わないだろうということで、次のように使っていました。


この20本を使って、実際に全画面クリアをするのに要する時間を計測してみました。



数字は、10回連続してクリアするのに要した時間です。1回15msくらいかかることになります。なにしろドットをひとつずつソフトで書いていくので、320x240=76800回の書き込みをおこなっているわけです。その際に、
  1. 書き込みデータを出力する
  2. /WRをLに落とす
  3. /WRをHに戻す
という手順が必要となります。これまでは、データ線と制御線が、別のポートにあったので、上記のように3回のGPIO出力が必要でした。しかし、データ線と制御線が同じポートにあれば、
  1. 書き込みデータを出力するとともに/WRをLに落とす。
  2. 書き込みデータを出力するとともに/WRをHに戻す。
という2回の書き込みで済ませられるはずです。そこで、ポートの割り当てを次のように変更。

画面クリアの試験は、



ちょびっと改善できました。もちろん、画面の表示も正常です。単純に76800回ループしているだけなので、ちょっとループを展開してやるとかすれば、もう少し早くなるでしょうが、全画面クリアだけ早くなったところで大して意味無いので、こんなもんで納得することにしておきます。