過去記事の改良① ILI9341の2.4インチ液晶ディスプレイのプログラム
過去に紹介したプログラムで、修正ではなくブラシュアップ、つまり改良したことを書いていこうと思う。
まずはILI9341のドライバーICを搭載した2.4インチTFT液晶ディスプレイのプログラムから。
この液晶ディスプレイを使ったプログラムの中で、ディスプレイの初期化フェーズがあるのだが、いろいろ調べたところ不必要なコードがたくさんあった。
まずはその無駄なコードを排除してすっきりしたプログラムにしたいと思う。
ILI9341を使った液晶ディスプレイの記事は下記に列挙する。
この全てで同じ改良をすることができる。
改良部分は、Lcd_Init関数内に全てある。
この中では液晶ディスプレイを初期化するコマンドを送っているのだが、その半分くらいは不要なものだった。 コマンドを調べてもマニュアルには載っていなかったので、削除したけど問題なく動作した。 というわけだ。
具体的に削除する所は、
Lcd_Write_Com(0xCB); Lcd_Write_Data(0x39); Lcd_Write_Data(0x2C); Lcd_Write_Data(0x00); Lcd_Write_Data(0x34); Lcd_Write_Data(0x02); Lcd_Write_Com(0xCF); Lcd_Write_Data(0x00); Lcd_Write_Data(0XC1); Lcd_Write_Data(0X30); Lcd_Write_Com(0xE8); Lcd_Write_Data(0x85); Lcd_Write_Data(0x00); Lcd_Write_Data(0x78); Lcd_Write_Com(0xEA); Lcd_Write_Data(0x00); Lcd_Write_Data(0x00); Lcd_Write_Com(0xED); Lcd_Write_Data(0x64); Lcd_Write_Data(0x03); Lcd_Write_Data(0X12); Lcd_Write_Data(0X81); Lcd_Write_Com(0xF7); Lcd_Write_Data(0x10); Lcd_Write_Com(0xC0); Lcd_Write_Data(0x23); Lcd_Write_Com(0xC1); Lcd_Write_Data(0x10); Lcd_Write_Com(0xC5); Lcd_Write_Data(0x2b); Lcd_Write_Data(0x2b); Lcd_Write_Com(0xC7); Lcd_Write_Data(0xc0);
の部分である。
これだけ無駄なコードがあるので、これら全部を削除するとだいぶすっきりする。
動作内容は全く変わらない。
なぜ無駄なコードが入っていたかと言うと、サンプルプログラムをそのまま転用していたのだが、そのサンプルプログラム自体が何かの転用なのか、いらないコマンドがそのまま残っていたためだと思われる。
後の4.0インチ液晶ディスプレイでも同様で、初期化コマンドが異様に長いので調べてみたが何もわからず、削除しても動作した。 そんなことがあったので、この2.4インチディスプレイでも同様ではないかと思ったのがきっかけだった。
で、がっつり削除してみても問題なかった。
なんにせよ、コードがすっきりするのは良いことだ。