Paso 6: Dibujar rectángulos
void color_lcd_draw_rectangle (color int, unsigned char x, unsigned char ys, unsigned char xe, unsigned char ye)
{
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 = (((unsigned int)(xe-xs+1)*(ye-ys+1))/2);
para (unsigned int i = 0; i < half_rect_area; i ++)
{
color_lcd_send_data (color >> 4);
color_lcd_send_data (((color&0x0F) << 4) | () color >> 8));
color_lcd_send_data(color);
}
}
Comienza definiendo la región con CASET y PASET, inicia una escritura de la RAM y luego rellena la región con un color sólido. Puesto que las tres líneas send_data realmente llenan 2 pixeles en vez de 1, el bucle sólo debe contar a la mitad del área del rectángulo.