打印

ST7920控制12864图形显示中GDRAM的疑问

[复制链接]
5196|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiyiche|  楼主 | 2009-4-15 16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下两个函数,为什么在写入列地址时,方法完全不一样?而且第二个函数写入的是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); 
                               } 
   } 

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

484

帖子

0

粉丝