Инициализация прошла успешно, появился мусор. Далее закрасил экран цветом, здесь все нормально.
Решил нарисовать линию, линия это же набор пикселей определенного цвета. Вот тут и проблема, не рисуются они...
Код
//инициализация
void LCD_init(void)
{
CS_Low;
RESET_Hi;
RESET_Low;
RESET_Hi;
delay_ms(10);
LCD_CMD(0x01);
LCD_CMD(0x11);
LCD_CMD(0x03);
delay_ms(10);
LCD_CMD(0x29);
LCD_CMD(0x13);
LCD_CMD(0x21);
LCD_CMD(0x21);
LCD_CMD(0xba);
LCD_CMD(0x36);
LCD_DATA(0x00);
LCD_CMD(0x3a); //Установка цветовой палитры
#ifdef _8_BIT_COLOR
LCD_DATA(0x02); //Байт на пиксель 256 цветов
#else
LCD_DATA(0x05); //Два байта на пиксель 65536 цветов
#endif
LCD_CMD(0x2a);
LCD_DATA(0x00);
LCD_DATA(0x7f);
LCD_CMD(0xb4);
LCD_DATA(0x03);
LCD_DATA(0x08);
LCD_DATA(0x0b);
LCD_DATA(0x0e);
LCD_CMD(0xba);
LCD_DATA(0x07);
LCD_DATA(0x0d);
LCD_CMD(0x2b);
LCD_DATA(0x00);
LCD_DATA(0x7f);
}
//выделяем область на экране
void SetArea(uint8_t x1, uint8_t x2, uint8_t y1, uint8_t y2)
{
LCD_CMD(0x2a);
LCD_DATA(x1);
LCD_DATA(x2);
LCD_CMD(0x2b);
LCD_DATA(y1);
LCD_DATA(y2);
LCD_CMD(0x2c);
}
//заливаем ее цветом
void screen(uint16_t color, uint8_t x_1, uint8_t x_2, uint8_t y_1, uint8_t y_2)
{
uint8_t x;
SetArea(x_1,x_2,y_1,y_2);
RS_Hi;
for (x = 0; x < 16384; x++)
{
LCD_DATA(color);
}
}
//рисуем пиксель
void pixel(uint32_t color, uint8_t x, uint8_t y)
{
SetArea(x,x,y,y);
RS_Hi;
LCD_DATA(color);
}
//рисуем линию
void line(void)
{
uint8_t i=0;
while (i < 50)
{
pixel(0xffa6,i,1);
i++;
delay_ms(10);
}
}
void LCD_init(void)
{
CS_Low;
RESET_Hi;
RESET_Low;
RESET_Hi;
delay_ms(10);
LCD_CMD(0x01);
LCD_CMD(0x11);
LCD_CMD(0x03);
delay_ms(10);
LCD_CMD(0x29);
LCD_CMD(0x13);
LCD_CMD(0x21);
LCD_CMD(0x21);
LCD_CMD(0xba);
LCD_CMD(0x36);
LCD_DATA(0x00);
LCD_CMD(0x3a); //Установка цветовой палитры
#ifdef _8_BIT_COLOR
LCD_DATA(0x02); //Байт на пиксель 256 цветов
#else
LCD_DATA(0x05); //Два байта на пиксель 65536 цветов
#endif
LCD_CMD(0x2a);
LCD_DATA(0x00);
LCD_DATA(0x7f);
LCD_CMD(0xb4);
LCD_DATA(0x03);
LCD_DATA(0x08);
LCD_DATA(0x0b);
LCD_DATA(0x0e);
LCD_CMD(0xba);
LCD_DATA(0x07);
LCD_DATA(0x0d);
LCD_CMD(0x2b);
LCD_DATA(0x00);
LCD_DATA(0x7f);
}
//выделяем область на экране
void SetArea(uint8_t x1, uint8_t x2, uint8_t y1, uint8_t y2)
{
LCD_CMD(0x2a);
LCD_DATA(x1);
LCD_DATA(x2);
LCD_CMD(0x2b);
LCD_DATA(y1);
LCD_DATA(y2);
LCD_CMD(0x2c);
}
//заливаем ее цветом
void screen(uint16_t color, uint8_t x_1, uint8_t x_2, uint8_t y_1, uint8_t y_2)
{
uint8_t x;
SetArea(x_1,x_2,y_1,y_2);
RS_Hi;
for (x = 0; x < 16384; x++)
{
LCD_DATA(color);
}
}
//рисуем пиксель
void pixel(uint32_t color, uint8_t x, uint8_t y)
{
SetArea(x,x,y,y);
RS_Hi;
LCD_DATA(color);
}
//рисуем линию
void line(void)
{
uint8_t i=0;
while (i < 50)
{
pixel(0xffa6,i,1);
i++;
delay_ms(10);
}
}