silver (16.04.2010 17:29, просмотров: 6032)
Посоветуйте, как лучше делать закрашивание экрана граф. ЖКИ, то-есть начинаю построчно закрашивать, параллельно опрашивая экран, если натыкаюсь на уже зажженный бит-перехожу на следующую строку и т.д. Мой код вроде работает, но как можно сделать лучше?
while (1)
{
PutPixelXYLCD(m,n,1);//зажигаю точку по определенному адресу, m-положение х, n-у
m++;
while (readLCD(m+6,n)==0x00)// опрашиваю следующий байт, если пустой-продолжаю штриховать
{
if (m==240){m=0;n++;};
if (n==128){n=0;};
PutPixelXYLCD(m,n,1);
m++;
};
r=m+6;
o=m;
if (readLCD(r,n)&0x20)//если последний бит в следующем байте зажжен, закрашиваю текущий байт до конца и перехожу на след. строку
{while (readLCD(o,n)!=63){PutPixelXYLCD(m,n,1);
m++;
}
}
if (readLCD(r,n)&0x10)// далее поочередно опрашиваю все биты
{while (readLCD(r,n)!=0x30)
{PutPixelXYLCD(m,n,1);
m++;}
}
else if (readLCD(r,n)&0x08) {while (readLCD(r,n)!=0x38)
{PutPixelXYLCD(m,n,1);
m++;}
}
else if (readLCD(r,n)&0x04) {while (readLCD(r,n)!=0x3c)
{PutPixelXYLCD(m,n,1);
m++;}
}
else if (readLCD(r,n)&0x02) {while (readLCD(r,n)!=0x3e)
{PutPixelXYLCD(m,n,1);
m++;}
}
else if (readLCD(r,n)&0x01) {while (readLCD(r,n)!=0x3f)
{PutPixelXYLCD(m,n,1);
m++;}
}
m=90;
n++;}