Hur du använder en Nokia färg LCD! (6 / 11 steg)
Steg 6: Rita rektanglar
void color_lcd_draw_rectangle (int färg, unsigned char xs, unsigned char ys, unsigned char xe, unsigned char ni)
{
color_lcd_send_cmd(PASET);
color_lcd_send_data(ys);
color_lcd_send_data(Ye);
color_lcd_send_cmd(CASET);
color_lcd_send_data(xs);
color_lcd_send_data(XE);
color_lcd_send_cmd(RAMWR);
unsigned int half_rect_area = (((osignerade int)(xe-xs+1)*(ye-ys+1))/2);
för (unsigned int jag = 0; jag < half_rect_area; i ++)
{
color_lcd_send_data (färg >> 4);
color_lcd_send_data (((color&0x0F) << 4) | () färg >> 8));
color_lcd_send_data(Color);
}
}
Det börjar med att definiera regionen med hjälp av MÅLT och PASET, initierar en RAM skriva och fyller sedan i regionen med en heltäckande färg. Eftersom de tre send_data raderna faktiskt fylla 2 pixlar istället för 1, den för loop har bara räkna till hälften rektangel området.