[mw_shl_code=applescript,true]//在指定区域内填充单个颜 {MOD}
//(sx,sy),(ex,ey):填充矩形对角坐标,区域大小为
ex-sx+1)*(ey-sy+1)
//color:要填充的颜 {MOD}
void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)
{
u16 i,j;
u16 xlen=0;
u16 temp;
if((lcddev.id==0X6804)&&(lcddev.dir==1)) //6804横屏的时候特殊处理
{
temp=sx;
sx=sy;
sy=lcddev.width-ex-1;
ex=ey;
ey=lcddev.width-temp-1;
lcddev.dir=0;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
LCD_Fill(sx,sy,ex,ey,color);
lcddev.dir=1;
lcddev.setxcmd=0X2B;
lcddev.setycmd=0X2A;
}else
{
xlen=ex-sx+1;
for(i=sy;i<=ey;i++)
{
LCD_SetCursor(sx,i); //设置光标位置
LCD_WriteRAM_Prepare(); //开始写入GRAM
for(j=0;j<xlen;j++)TFTLCD->LCD_RAM=color; //显示颜 {MOD}
}
}
} [/mw_shl_code]这里我觉得还可以改进一下,因为ILI9341支持RAM指针自增,所以无需每次都设置坐标,只需要设置X和Y轴的起始和结束坐标就行。
一周热门 更多>