|
==========================================================*/
void Write_HZ(int32 startx,int32 starty,unsigned char size,int32 hz_color,int32 back_color,int32 change_color,const unsigned char *hzs)
{
unsigned int i,j,n,m;
unsigned int temp1;
int32 hz_color1,back_color1;
hz_color1 = hz_color;
back_color1 = back_color;
m = (size * size)>>9;
m++;
/*
WriteReg(0x005000,(x<<8));
WriteReg(0x005100,(x+size-1)<<8);
WriteReg(0x005200, (y<<8));
WriteReg(0x005300, (y+size-1)<<8);
WriteReg(0x002000,(x<<8));
WriteReg(0x002100,(y<<8));
*/
WriteReg(0x005000,(startx<<8));
WriteReg(0x005100,(startx+size-1)<<8);
WriteReg(0x005200, (starty<<8));
WriteReg(0x005300, (starty+size-1)<<8);
WriteReg(0x002000,(startx<<8));
WriteReg(0x002100,(starty<<8));
WriteRegAddr(0x002200);
IO0SET = RS;
IO0CLR = _CS1;
for(j=0;j<((size * size)/16);j++)
{
//WriteReg(0x00005000,j);
//WriteReg(0x00005200,0);
temp1 = *hzs++;
temp1 = (temp1)|((*hzs++)<<8);
for(i=0;i<16;i++)
{
if(temp1 & 0x0001)
{
IO0CLR = DataPort ;
IO0SET = hz_color1 & DataPort;
}
else
{
IO0CLR = DataPort; IO0SET = back_color1 & DataPort;
}
temp1 >>= 1;
IOCLR = _WR;
IOSET = _WR;
}
n++;
if((n%m) == 0)
{
hz_color1 += change_color;
back_color1-= change_color;
}
}
IO0SET = _CS1;
}
请帮忙解释前面几个写寄存器操作是什么用处?
WriteReg(0x005000,(startx<<8));
WriteReg(0x005100,(startx+size-1)<<8);
WriteReg(0x005200, (starty<<8));
WriteReg(0x005300, (starty+size-1)<<8);
WriteReg(0x002000,(startx<<8));
WriteReg(0x002100,(starty<<8));
是定位坐标吗?不是后两条就可以定位了? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|