不明白画点和快速画点函数的区别

2019-07-20 02:50发布

//画点
//x,y:坐标
//POINT_COLOR:此点的颜 {MOD}
void LCD_DrawPoint(u16 x,u16 y)
{
LCD_SetCursor(x,y);  //设置光标位置
LCD_WriteRAM_Prepare(); //开始写入GRAM
LCD->LCD_RAM=POINT_COLOR;
}
//快速画点
//x,y:坐标
//color:颜 {MOD}
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->LCD_REG=lcddev.wramcmd;
LCD->LCD_RAM=color;
}  
//SSD1963 背光设置
//pwm:背光等级,0~100.越大越亮.
void LCD_SSD_BackLightSet(u8 pwm)
{
LCD_WR_REG(0xBE); //配置PWM输出
LCD_WR_DATA(0x05); //1设置PWM频率
LCD_WR_DATA(pwm*2.55);//2设置PWM占空比
LCD_WR_DATA(0x01); //3设置C
LCD_WR_DATA(0xFF); //4设置D
LCD_WR_DATA(0x00); //5设置E
LCD_WR_DATA(0x00); //6设置F
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。