Apr20th

液晶ディスプレイで遊ぶ

Top / 液晶ディスプレイで遊ぶ

これ。
http://www.aitendo.com/product/1707

aitendoで公開されている初期化コードで動きます。
http://aitendo3.sakura.ne.jp/aitendo_data/product_img/lcd/tft/ZY-FGD1442701V1/st7735r/ST7735s_ini_code.txt

ただし、初めにRDを1にする必要あり。これでハマってしまった…

RX621で表示。
全ドット書き換え時のfps測った。
Period = 46[ms] -> 21[fps]

データ送る関数はこんなかんじで。
void writeDataST7725S(unsigned char Data){

		
	ST7735_CS = 0;
	ST7735_CD = 1;	// Data
	
	ST7735_WR = 0;
	
	ST7735_D0 = Data&0x01;
	ST7735_D1 = (Data>>1)&0x01;
	ST7735_D2 = (Data>>2)&0x01;
	ST7735_D3 = (Data>>3)&0x01;
	ST7735_D4 = (Data>>4)&0x01;
	ST7735_D5 = (Data>>5)&0x01;
	ST7735_D6 = (Data>>6)&0x01;
	ST7735_D7 = (Data>>7)&0x01;
	
	//PORTD.DR.BYTE = Data;
	//delayMs(1);
	ST7735_WR = 1;
	ST7735_CS = 1;
	

}
連続で送るならCSとCDって毎回は要らないよなー。というわけで削ってみよう。ほーんのちょっとだけ速くなるべ。

Period = 39[ms] -> 25[fps]
2割位スピードアップ!

さらにさらに、1ビットずつ書いてたのをポート全体にByte単位で書いたら、、

void writeDataST7725S(unsigned char Data){

	ST7735_WR = 0;
	PORTD.DR.BYTE = Data;
	ST7735_WR = 1;

}

Period = 11[ms] -> 90[fps]
スピードアップ!

しかし、液晶モジュール側での受信が追いつかない模様。
WR=0と1の間にディレイが必要か。さすがに。
データシートだと20us(だか30usだか)必要だと書いてある。