OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4781|回复: 7

画点和快速画点的

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-10-24
在线时间
0 小时
发表于 2013-5-26 19:06:26 | 显示全部楼层 |阅读模式
//画点
//x,y:坐标
//POINT_COLOR:此点的颜色
void LCD_DrawPoint(u16 x,u16 y)
{
LCD_SetCursor(x,y); //设置光标位置 
LCD_WriteRAM_Prepare(); //开始写入GRAM
LCD->LCD_RAM=POINT_COLOR; 
}
//快速画点
//x,y:坐标
//color:颜色
void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color)
{   
if(lcddev.id==0X9341)
{
LCD_WR_REG(lcddev.setxcmd); 
LCD_WR_DATA(x>>8); 
LCD_WR_DATA(x&0XFF);  
LCD_WR_REG(lcddev.setycmd); 
LCD_WR_DATA(y>>8); 
LCD_WR_DATA(y&0XFF);
}else if(lcddev.id==0X6804)
{    
if(lcddev.dir==1)x=lcddev.width-1-x;//横屏时处理
LCD_WR_REG(lcddev.setxcmd); 
LCD_WR_DATA(x>>8); 
LCD_WR_DATA(x&0XFF);  
LCD_WR_REG(lcddev.setycmd); 
LCD_WR_DATA(y>>8); 
LCD_WR_DATA(y&0XFF);
}else
{
  if(lcddev.dir==1)x=lcddev.width-1-x;//横屏其实就是调转x,y坐标
LCD_WriteReg(lcddev.setxcmd,x);
LCD_WriteReg(lcddev.setycmd,y);
}  
LCD->LCD_REG=lcddev.wramcmd; 
LCD->LCD_RAM=color; 
}  
原子老大、请问下这画点和快速画点有何区别呢、怎么看来都一样的呢。。快速具体体现在哪里呢、望赐教~~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-5-26 19:29:42 | 显示全部楼层
调用函数是要时间的。
一直努力就很好。
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
发表于 2013-10-20 22:56:56 | 显示全部楼层
额?请问就只是调用函数的时间问题吗?还有别的区别没有啊?
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
发表于 2013-10-20 22:57:15 | 显示全部楼层
回复【2楼】qq942266575:
---------------------------------
额?请问就只是调用函数的时间问题吗?还有别的区别没有啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-21 14:51:09 | 显示全部楼层
回复【楼主位】peter-tao:
---------------------------------
没有区别。
这个快速画点,带了颜色参数。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

232

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2288
金钱
2288
注册时间
2012-8-24
在线时间
247 小时
发表于 2014-5-10 14:02:32 | 显示全部楼层
这个程序中这句怎么理解if(lcddev.dir==1)x=lcddev.width-1-x;谢谢
单片机技术交流请加127034610
回复 支持 反对

使用道具 举报

29

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-8-3
在线时间
48 小时
发表于 2018-8-19 17:54:47 | 显示全部楼层
现在版本的快速画点和画点
//画点
//x,y:坐标
//POINT_COLOR:此点的颜色
void LCD_DrawPoint(u16 x,u16 y)
{
        LCD_SetCursor(x,y);                //设置光标位置
        LCD_WriteRAM_Prepare();        //开始写入GRAM
        LCD_WR_DATA(POINT_COLOR);
}         
//快速画点
//x,y:坐标
//color:颜色
void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color)
{          
        if(lcddev.id==0X9341||lcddev.id==0X5310)
        {
                LCD_WR_REG(lcddev.setxcmd);
                LCD_WR_DATA(x>>8);LCD_WR_DATA(x&0XFF);                           
                LCD_WR_REG(lcddev.setycmd);
                LCD_WR_DATA(y>>8);LCD_WR_DATA(y&0XFF);                           
        }else if(lcddev.id==0X5510)
        {
                LCD_WR_REG(lcddev.setxcmd);LCD_WR_DATA(x>>8);  
                LCD_WR_REG(lcddev.setxcmd+1);LCD_WR_DATA(x&0XFF);          
                LCD_WR_REG(lcddev.setycmd);LCD_WR_DATA(y>>8);  
                LCD_WR_REG(lcddev.setycmd+1);LCD_WR_DATA(y&0XFF);
        }else if(lcddev.id==0X1963)
        {
                if(lcddev.dir==0)x=lcddev.width-1-x;
                LCD_WR_REG(lcddev.setxcmd);
                LCD_WR_DATA(x>>8);LCD_WR_DATA(x&0XFF);                
                LCD_WR_DATA(x>>8);LCD_WR_DATA(x&0XFF);                
                LCD_WR_REG(lcddev.setycmd);
                LCD_WR_DATA(y>>8);LCD_WR_DATA(y&0XFF);                
                LCD_WR_DATA(y>>8);LCD_WR_DATA(y&0XFF);                
        }else if(lcddev.id==0X6804)
        {                    
                if(lcddev.dir==1)x=lcddev.width-1-x;//横屏时处理
                LCD_WR_REG(lcddev.setxcmd);
                LCD_WR_DATA(x>>8);LCD_WR_DATA(x&0XFF);                         
                LCD_WR_REG(lcddev.setycmd);
                LCD_WR_DATA(y>>8);LCD_WR_DATA(y&0XFF);                
        }else
        {
                if(lcddev.dir==1)x=lcddev.width-1-x;//横屏其实就是调转x,y坐标
                LCD_WriteReg(lcddev.setxcmd,x);
                LCD_WriteReg(lcddev.setycmd,y);
        }       
        LCD_RS_CLR;
        LCD_CS_CLR;
        DATAOUT(lcddev.wramcmd);//写指令  
        LCD_WR_CLR;
        LCD_WR_SET;
        LCD_CS_SET;
        LCD_WR_DATA(color);                //写数据
}

快速画点为什么有些时序上的东西,LCD_WR_CLR;
        LCD_WR_SET; 而画点没有这个呢?
回复 支持 反对

使用道具 举报

29

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-8-3
在线时间
48 小时
发表于 2018-8-19 17:57:45 | 显示全部楼层
//开始写GRAM
void LCD_WriteRAM_Prepare(void)
{
        LCD_WR_REG(lcddev.wramcmd);
}


原子哥,我可是听你得话遇到问题先查查有没有人问过,可是呢,没有解决疑问。有空的话回复一下吧亲
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 17:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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