Пт июн 07, 2019 12:59:47
TFT_command(ST7789_SWRESET);
delay_ms(120);
TFT_command(ST7789_SLEEPOUT);
delay_ms(120);
TFT_command(ST7789_DISPON);
TFT_command(ST7789_MADCTL_RGB);
TFT_data(0b00001000);
TFT_command(ST7789_COLMOD);
TFT_data(5);
MOSI_pin = 1;
DC_pin = 1;
SCK_pin = 1;
RESET_pin = 0;
delay_ms(120);
RESET_pin = 1;
delay_ms(120);
// последовательность инициализации дисплея
TFT_command(0x11); // проснулись
delay_ms(10); // пауза 10 мс
TFT_command(0x3A); // режим цвета:
TFT_data(0x05); // 16 бит
TFT_command(0x29); // включаем изображение
// закрасим экран тремя цветами на черном фоне
for (y=0;y<240;y++)
for (x=0;x<240;x++) {
unsigned int color=0x0;
if (y<20) color=0xFC00;
else {
if (y<40) color=0x02E0;
else { if (y<60) color=0x001F; }
}
lcd7735_pix(x, y, color);
}
Пт июн 07, 2019 13:17:14
Пт июн 07, 2019 13:19:18
Пт июн 07, 2019 13:46:17
Пт июн 07, 2019 14:08:19
Пт июн 07, 2019 14:18:10
Пт июн 07, 2019 14:33:39
Пн июн 10, 2019 15:20:00
Чт окт 17, 2019 14:46:04
void write_byte(unsigned char c,unsigned char com)//0-command 1-data
{ unsigned char i;
CS_pin = 0;
if(com==0)
DC_pin = 0;
else
DC_pin = 1;
SCK_pin = 1;
for(i=0;i<8;i++)
{
if(((c>>(7-i))&1) == 1){
MOSI_pin = 1;}
else {
MOSI_pin = 0;}
SCK_pin = 0;
delay_us(1);
SCK_pin = 1;
}
CS_pin = 1;
}
void Reset()
{
RESET_pin = 0;
delay_ms(10);
RESET_pin = 1;
delay_ms(150);
}
void TFTInit()
{ unsigned int i=0;
DDRB.2 = 1;
DDRD.4 = 1;
DDRD.5 = 1;
DDRD.6 = 1;
DDRD.7 = 1;
RESET_pin = 1;
CS_pin = 1;
DC_pin = 1;
SCK_pin = 1;
MOSI_pin = 1;
Reset();
write_byte(0x01,0);
delay_ms(150);
write_byte(0x11,0);
delay_ms(100);
write_byte(0x3A,0);
write_byte(0x05,1);
write_byte(0x36,0);
write_byte(0x14,1);
write_byte(0x21,0);
write_byte(0x13,0);
write_byte(0x29,0);
}
void WriteTwoByte(unsigned char LCD_DataH,unsigned char LCD_DataL)
{
write_byte(LCD_DataH,1);
write_byte(LCD_DataL,1);
}
void OutColor(unsigned int color)
{
WriteTwoByte((color>>8),((color<<8)>>8));
}
void TFTSingleColor(unsigned int color)
{
unsigned char i,j;
for (i=0;i<WIDTH;i++)
for (j=0;j<HEIGH;j++)
OutColor(color);
}
void Area(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1)
{
write_byte(0x2a,0);
write_byte(0,1);
write_byte(y0,1);
write_byte(0,1);
write_byte(y1,1);
write_byte(0x2b,0);
write_byte(0,1);
write_byte(x0,1);
write_byte(0,1);
write_byte(x1,1);
write_byte(0x2c,0);
}
void DrawPixel(unsigned char x0, unsigned char y0, unsigned int color)
{
Area((WIDTH-x0),y0,(WIDTH-x0),y0);
OutColor(color);
}
void WriteChar8x11(unsigned char x0, unsigned char y0, unsigned char s, unsigned int color)
{
unsigned char x,y,c;
Area((19-y0)*8, x0*11, (19-y0)*8+7, x0*11+10); // Area((19-x0)*8, y0*11, (19-x0)*8+7, y0*11+10);
for(y=0;y<8;y++){
for(x=0;x<11;x++)
{
if(s>=192)
c=65;
else
c=0;
if((Font_8x11[s-32-c][y]&(1<<x))!=0)
OutColor(color);
else
OutColor(BLACK);
}
}
}
void WriteString8x11(unsigned char x0,unsigned char y0,unsigned char *s,unsigned int color)
{
int i,x,y,xx,c;
xx=19-x0;
for(i = 0;s[i]!='\0';i++)
{
Area(xx*8, y0*11, xx*8+7, y0*11+10);//откуда тут взялись константы - тоже не понятно, как их высчитывать..
for(y=0;y<8;y++)
for(x=0;x<11;x++)
{
if(s[i]>=192)
c=65;
else
c=0;
if((Font_8x11[s[i]-32-c][x]&(1<<y))!=0)
OutColor(color);
else
OutColor(BLACK);
}
if(xx==0)
{
xx=19;
y0++;
}
else
xx--;
if(y0>10)
y0=0;
}
}
Вт окт 22, 2019 09:03:56
Вт окт 22, 2019 10:44:45
Ср янв 15, 2020 16:50:35
Чт янв 16, 2020 10:36:57
Чт янв 16, 2020 12:45:24
Вт мар 09, 2021 19:52:57
Пт апр 23, 2021 10:36:59
Ср апр 28, 2021 14:43:19
Делал инициализацию на основе этих данныхmab72 писал(а):-последовательность первоначальной инициализации
mab72 писал(а):-режим работы SPI (CPOL, CPHA)
Пн май 31, 2021 22:55:20
Вт июн 01, 2021 12:36:46
Ср июн 02, 2021 00:12:33