找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2716|回复: 8
打印 上一主题 下一主题
收起左侧

T6963C驱动程序问题:奇怪,这两句一样,怎么效果就不一样?

[复制链接]
跳转到指定楼层
楼主
看LCM_pixel(127,63,1)函数,应该与这两句LCM_set_address(63*16+127/8)fnPR12(0xf8 | 7);是一样意思,现在上面可以正常显示两个点,但是将上面注释掉,换成下面两句,就不可以?请教大神是怎么回事?


#include "T6963C.H"

void LCM_pixel(uchar column, uchar row,bit show)
{
         uint addr;        
        
         if((column>=LCM_XMAX)||(row>=LCM_YMAX))
                 return;
         addr =(uint)LCM_G_BASE + (row*LCM_BYTES_PER_ROW)+ (column/8);
         LCM_set_address(addr);                                                           // set LCD addr. Pointer        
         if(show)
                fnPR12((LCM_BIT_OP+8)| (7-column%8));                          // 0xf8为画点命令,
         else
                fnPR12(LCM_BIT_OP| (7-column%8));                                  // 0xf0为清点命令
         
}
void main(void)            // 测试用
{
        LCM_init();

        LCM_set_address(63*16+127/8);//右下角
        fnPR12(0xf8 | 7);
        LCM_set_address(63*16+0/8);//左下角
        fnPR12(0xf8 | 7);

//        LCM_pixel(127,63,1);//右下角addr=63*16+127/8=0x03FF
//        LCM_pixel(0,63,1);//左下角addr=63*16+127/8=0x03F0
        
        while(1);
}


复件 4 LCD12864(T6963)驱动程序 画图函数测试.rar

40.96 KB, 下载次数: 11

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:303383 发表于 2018-9-29 12:37 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

板凳
ID:403948 发表于 2018-9-29 13:02 | 只看该作者
看是否跟if((column>=LCM_XMAX)||(row>=LCM_YMAX))有关系
回复

使用道具 举报

地板
ID:135253 发表于 2018-9-29 14:19 | 只看该作者
谢谢,晚上回去看看,感觉没有超过范围!
回复

使用道具 举报

5#
ID:135253 发表于 2018-9-29 14:20 | 只看该作者
这句注释过了,也没用
回复

使用道具 举报

6#
ID:135253 发表于 2018-9-29 14:22 来自手机 | 只看该作者
小猫猫爱吃鱼 发表于 2018-9-29 12:37
void LCM_pixel(uchar column, uchar row,bit show)

函数内定义的 column、row 是采用的 uchar 类型,计 ...

谢谢,127,63没有超范围啊?
回复

使用道具 举报

7#
ID:135253 发表于 2018-9-29 14:23 来自手机 | 只看该作者
猪八戒 发表于 2018-9-29 13:02
看是否跟if((column>=LCM_XMAX)||(row>=LCM_YMAX))有关系

注释过了,也没用!
回复

使用道具 举报

8#
ID:404160 发表于 2018-9-29 20:06 | 只看该作者
addr =(uint)LCM_G_BASE + (row*LCM_BYTES_PER_ROW)+ (column/8);

这句计算应该是编译后数据类型不对。导致计算错误
回复

使用道具 举报

9#
ID:135253 发表于 2018-9-30 19:05 | 只看该作者
飞云居士 发表于 2018-9-29 20:06
addr =(uint)LCM_G_BASE + (row*LCM_BYTES_PER_ROW)+ (column/8);

这句计算应该是编译后数据类型不对。 ...

那应该如何修改呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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