想用这两个函数显示一个小图片,却不成功,请指点。
这张图片是50*50,但在屏幕上从左边缘一直显示到右边缘,并没有在水平终止的位置结束。
LCD_DisPicture(10,10,50,50); //主程序调用
//设置窗口
void LCD_SetWindow(u8 Xsta, u16 Ysta,u8 Xend,u16 Yend)
{
LCD_WriteReg(R50, Xsta);//水平起始位置
LCD_WriteReg(R51, Xend);//水平终止位置
LCD_WriteReg(R52, Ysta);//垂直起始位置
LCD_WriteReg(R53, Yend);//垂直终止位置
LCD_WriteReg(R32, Xsta);//设置X坐标位置
LCD_WriteReg(R33, Ysta);//设置Y坐标位置
LCD_WR_REG(R34);//开始写入GRAM
}
//显示图片
void LCD_DisPicture(u8 x,u16 y,u8 length,u16 high)
{
u16 temp=0,tmp=0,num=0;
LCD_SetWindow(x,y,x+length-1,y+high-1);
num=length*high*2;
do
{
temp=gImage_gedi[tmp+1];
temp=temp<<8;
temp=temp|gImage_gedi[tmp];
LCD_WR_DATA(temp);//逐点显示
tmp+=2;
}while(tmp<num);
}
|