以下两个函数,为什么在写入列地址时,方法完全不一样?而且第二个函数写入的是256*64个点。这是为什么呢?
void Disp_Img(const unsigned char *img) { unsigned int j=0; unsigned char x,y,i; for(i=0;i<9;i+=8) for(y=0;y<32;y++)/*原来 为 y<26 ,上下两个半屏不能正常对接显示,导致显示的图片中间有空隙*/ for(x=0;x<8;x++) { write_com(0x36);//功能设置---8BIT控制界面,扩充指令集 write_com(y+0x80); //行地址 write_com(x+0x80+i); //列地址 此处为什么要这样? write_com(0x30); write_data(img[j++]); write_data(img[j++]); } }
/*------------------清整个GDRAM空间----------------------------*/ void clrgdram() { unsigned char x,y; for(y=0;y<64;y++) for(x=0;x<16;x++) //这里写16次,没次两字节,16点,不就256点? { write_com(0x34); write_com(y+0x80); //行地址 write_com(x+0x80); //列地址 此处又为什么要这样? write_com(0x30); write_data(0x00); write_data(0x00); } } |