搜索
bottom↓
回复: 9

关于RA8835作图功能的问题!!

[复制链接]

出0入0汤圆

发表于 2009-3-22 12:57:28 | 显示全部楼层 |阅读模式
刚接触RA8835不久,发现其中的设置有许多搞不清,但现在想问下关于作图功能,以下程序调试时更改 @ 出就能在整屏上显示,不过我如果只在屏幕的某一个地方显示该这么写?例如我只在屏上显示 “大” 字???当我把 “大”的代码取出,然后写到ARM中,显示却不正确?
/* --- 清显示 32K RAM区(清屏)子程序 --- */
void Lcd_Clear(void)  
{
    uint i = 32768;
    //uint i = 9600;
    uchar j=0;

   writecommand(SystemSet);   //System Set
   writedata(0x31);                      //不用内部字符发生器
   writecommand(HdotScr);                //写入点位移指令代码
   writedata(0x00);                      //写入P1参数
   writecommand(Ovlay);                  //显示合成方式设置
   writedata(0x0C);                      //0000 1100 显示一区三区图形属性
   delay_ms(100);
   writecommand(DispOn);                 //写入指令代码
   writedata(0x54);                        //54

    writecommand(CsrDirR);                 //光标移动方向定义:自动右移
    writecommand(CsrW);                    //光标Locate,定位
    writedata(0x00);                       //写入参数CSRL设置参数光标指针低8位
    writedata(0x00);                       //写入参数CSRH设置参数光标指针高8位
    writecommand(mWrite);                  //数据写入指令,代码0x42
    while(i--)         
    {
         writedata(0X00);                //注:程序不断更改此值,得到不同的显示图    @
                                       
    }
}
程序修改 @ 出时,若写0x00,能清屏,写0xff,整屏都写满,写0x80,整屏的竖线。这样证明我其他的设置都没有错,并且以上的作图程序也没问题,为什么在我只写一部分的时候就出现错误呢?(注:本人用ATmega16)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2009-3-22 12:58:46 | 显示全部楼层
先自个顶下!!!

出0入0汤圆

发表于 2009-3-22 14:34:39 | 显示全部楼层
上面程序是全屏写,你需要对指定位置写。写16*16的“大”字需要32字节,每写2个字节需要转一行。

出0入0汤圆

 楼主| 发表于 2009-3-22 15:56:33 | 显示全部楼层
谢谢楼上的解答,当我换行的时候,是不是需要重新定义光标地址?也就是需要把下一行的首地址写入?

出0入0汤圆

 楼主| 发表于 2009-3-22 18:08:13 | 显示全部楼层
问题已解决,修改程序如下:
/* --- 清显示 32K RAM区(清屏)子程序 --- */
void Lcd_Clear(void)  
{
    uint i = 32768;
    //uint i = 9600;
    uchar j=0;
    writecommand(CsrDirR);                 //光标移动方向定义:自动右移
    writecommand(CsrW);                    //光标Locate,定位
    writedata(0x00);                       //写入参数CSRL设置参数光标指针低8位
    writedata(0x00);                       //写入参数CSRH设置参数光标指针高8位
    writecommand(mWrite);                  //数据写入指令,代码0x42
    while(i--)         
    {
         writedata(0X00);                //清屏
    }
      
    writecommand(CsrW);                    //光标Locate,定位
    writedata(0x50);                       //写入参数CSRL设置参数光标指针低8位
    writedata(0x00);
    writecommand(mWrite);                  //数据写入指令,代码0x42
    while(a[j])         
    {
         writedata(a[j++]);                //a数组中存放要显示的代码
    }
}

但我又发现了新问题,我用320*240的液晶屏,设置一行显示40个字符,那么相应的第二行的首地址应该是0x28H(40),才对啊,为什么我设置成0X50它才从第二行显示?
希望也有困惑的奋斗者把你遇到的问题拿出来晒晒,希望用RA8835作图的前辈给点意见,鄙人先在此谢过!

出0入0汤圆

发表于 2009-4-14 10:58:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-23 09:10:32 | 显示全部楼层
应为你写的16X16的字,占用了两行。不知道这个解释对不对。

出0入0汤圆

发表于 2011-9-23 11:19:26 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-11-21 09:22:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-8-12 15:34:11 | 显示全部楼层
取模方式和程序不对应
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 20:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表