PSoCでAQM1248を動かす話
ADCかUARTの話を書くと言ったな。あれは嘘だ。
はい、今回はPSoCでAQM1248を動かす話です。
PSoCでSPI動かす話がネットであまりなかったので(私に有益な日本語の情報って意味)、いつ記憶喪失になっても大丈夫なように書いておく。
とりあえず何かを表示させるところまで書いてます。
■使ったもの。
・PSoC Creator4.0
・PSoC 5LP Prototyping Kit
・AQM1248A小型グラフィック液晶ボード
3.3V作るのがめんどくてこちらを購入。PSoCボードが5Vなんだよね。
AQM1248A小型グラフィック液晶ボード - スイッチサイエンス
2.ソース
3.解説
読めばわかるけど順番に解説。
- SPIの開始処理をする
LCD_SPIM_Start();
コンポーネント:SPI_MasterのAPI。
LCD_SPIM_Init()とLCD_SPIM_Enable()を両方やってくれる。
- LCDセットアップをする
Lcd_Init();
自作関数。
AQM1248の取説にある初期化コマンド群。
何をしているかはvoid Lcd_Init(void){}を参照。
Lcd_Cmd(cmd);
自作関数。
LCDのRSピンをHiにしてコマンドモードにしてから、コマンド送信する。
Lcd_Data(data);
自作関数。
LCDのRSをLowにしてデータモードにしてから、データ送信を行う。
- LCDのVRAMをクリアする
Lcd_Crear();
自作関数。
ゴミが残ってることがあったので、クリアしようかなって。
ただひたすら全てに0を送るだけ。
- 一休み
CyDelay(1000);
無くても動くのでなくていいよ。
- データを送る
while(1){・・・}
スイッチサイエンスさんのデータをパクったので、スイッチサイエンスって表示される。
これをコメントにして、
Lcd_Data(pic[page][col]);
これを有効にすると、画面真っ黒になる。
Lcd_Data(255);