スタックサイズが微妙で、オリジナルの256バイトではハングする。4KとるとSRAMがもう一杯と怒られる。1K(0x400)で十分動いた。自分の予測や見込がぴったり当たって思い通りの結果が出るというのは、どんなささやかなことでも嬉しいものである。いつもながら幸福(しあわせ)な気分を味わう。電子工作の醍醐味のひとつだ。いや、喜んでいるばかりでは先に進まない。今度はハードの配線が待っている。新しいジャンパーコードが活躍。TFT液晶基板動かず(9/27/2014)気を良くして、いそいそと次のハードの工作に移る。CPU基板からTFT液晶ボードへの配線は、このあいだ買ったサンハヤトのスルーホールに差すジャンパーを使うことにしている。8ピンバスを使うので配線量は少ない。思っていた以上に簡単にうまく行った。ハードの準備はあっけなく終わって、残るはディスプレイのドライバーソフトである。TFT液晶のドライバーの初期化さえ動いてしまえば、あとの画面表示の開発は楽しいプログラミングになる。このねむいさんのコードは、大量の数のディスプレイをサポートしている。そのための抽象化が何段にもわたっているのでとても複雑だ。不要なコードを消しつつ、慎重に何度も確かめながらアサインしていく。Eclipse風の、ソースコードでのマクロ定義や、#ifdefを区別してくれるCoIDE(CooCoxの統合環境名)の環境は、こういうときにありがたい。ILI932x.cは何故か、16ビットモードにしかならず、新しい#defineシンボルを新設して強引に8ビットアサインに変更する。何度か失敗しながら(#undefで一旦、前の環境変数をクリアし、また#defineで定義し直すなどの小細工)、やっと実際のピンと関数の中の変数が一致した(CoIDEで確認できる)。ピンアサインと初期化ルーチンの確認をすませ、いよいよ、これまでコメント化したTFTディスプレイの初期化のルーチンを本番に戻し、TFTを生かしたテストに入る。ディバイスコードは出るのに反応なし。TFT液晶基板の不良か(9/30/2014)2日間がんばってテストしたが、結論は残念ながらタイトル通りの結果である。最初は全くの門前払いだった。printfでdeviceコードを出力させて調べてみると、何と、このTFT液晶(LM024C9325)のコントローラーはILI9325ではなく、ILI9328だった。店のウェブ記事では9325と明記してあり、型番がいかにも9325風なので、すっかりだまされていた。あわてて、9328の初期化シーケンスをねむいさんのソースライブラリから抜き出し、取り換える。それでも液晶画面は白いままである。初期化によって画面は黒くなるはずだが変化がない。コマンドを送って、正しいdeviceコードを返しているのに(8ビットモードであることはジャンパーをわざと外して確認)、次の初期化で画面が黒くならない(レクタングルを黒で塗りつぶす)のは、やっぱりハードが悪いと結論するのが自然なところだろう。deviceコードを返すコマンドが正しく動いていることは、データラインのジャンパーを外してみると違った値になるので間違いはない。移植のときのミス(何しろ変則的な使い方をしている)を疑って、別のサイトから初期化シーケンスを持ってきて試してみたが、やはり同じだった。やれやれ、基板不良の可能性が高い。これでこの基板が不良なら、Aitendoで買ったディスプレイの不良率は軽く30%を越えることになる(7枚のうち2枚完全不作動、1枚画面一部欠落)。ここほど安くて沢山の種類が選べるところは他にない。こんなものと諦めてまたここで買うしかないか。残念ながら、店は国慶節の休みに入っていてすぐに買いに行くことができない。ブログに書いた原稿を編集しながら時が来るのを待つ。これはハードではないだろう(10/3/2014)Aitendoの新しいリアル店舗を訪ねる。末広町の東北、もう御徒町に近いところで秋葉原から少し遠くなった。広さは倍くらいあるだろうか。最近ニューヨークに上場したAlibabaの電子材料店舗群に比べれば値段ははるかに高いが、それでも日本では破格の安さだ。リアル店舗は実際に手に取ったりできるのがありがたい。TFT液晶を2台買う。1台は、2.4インチの前と全く同じILI932xを使ったもの、もう一つはArduino用という、3.5インチで320x480のTFT液晶を衝動買いした。安かったので(¥1980)、つい買ってしまったが、また部品箱の肥やしになりそうである。帰宅してとるものもとりあえず、TFTのテストをする。ジャンパーを取り換える。