« 電車が来ない | トップページ | パイン避難 »

2016年1月21日 (木)

AQM-1248Aテスト

ArduinoからAQM-1248AというグラフィックLCDの動作確認をした。
さらにベンチマークなどのテストコードを書いたが、128×48ドットはそれなりに広くて快適。描画も高速ですばらしい。
途中、どうしてうまく表示できないのか悩む場面があったのだが、じつは表示が速くて見えていなかったくらいだ。

XEVIOUSくらいなら、そのまま動くんじゃね? とも思い、ザッパーを連射したところで、ようやく気付いたことがある。
拡大鏡がないと小さくて見えない…。何に使えばいいのだろう。

▽あとで写真

お約束ということで、BadAppleの影絵でも動かしてみようと思ったが、メモリがないから無理だな。


//	----------------------------------------
//	指定座標にボールを描く
//	----------------------------------------
void ballDisp(char x, char y) {			
	char pat[] = {
		0x06<<0, 0x09<<0, 0x09<<0, 0x06<<0,
		0x06<<1, 0x09<<1, 0x09<<1, 0x06<<1,
		0x06<<2, 0x09<<2, 0x09<<2, 0x06<<2,
		0x06<<3, 0x09<<3, 0x09<<3, 0x06<<3,
		0x06<<4, 0x09<<4, 0x09<<4, 0x06<<4,
		0x06<<5, 0x09<<5, 0x09<<5, 0x06<<5,
		0x06<<6, 0x09<<6, 0x09<<6, 0x06<<6,
		0x06<<7, 0x09<<7, 0x09<<7, 0x06<<7,
	};
	char patEx[] = {						// 下にハミ出たボール
		0x00, 0x01, 0x01, 0x00,
		0x01, 0x02, 0x02, 0x01,
		0x03, 0x04, 0x04, 0x03,
	};

	uint8_t page = y / 8;
	uint8_t mod = (y & 0x07);
	char* cp;

	uint8_t xH = x >> 4;			// address high
	uint8_t xL = x & 0x0f;			// address low
	lcdCommand( 0xb0 + page );		// page
	lcdCommand( 0x10 | xH );		// column High
	lcdCommand( xL );				// column Low

	cp = pat + mod * 4;
	lcdData( *cp++ );
	lcdData( *cp++ );
	lcdData( *cp++ );
	lcdData( *cp );

	if(mod>=5) {
		page++;
		lcdCommand( 0xb0 + page );	// page

		lcdCommand( 0x10 | xH );	// column High
		lcdCommand( xL );			// column Low
		cp = patEx + (mod-5)*4;
		lcdData( *cp++ );
		lcdData( *cp++ );
		lcdData( *cp++ );
		lcdData( *cp );
	}
}

« 電車が来ない | トップページ | パイン避難 »

お仕事」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/24707/63891001

この記事へのトラックバック一覧です: AQM-1248Aテスト:

« 電車が来ない | トップページ | パイン避難 »

最近のトラックバック