Уважаемые подскажите в чем ошибся ?
Использую дисплей 128х160 1,8" + esp32 - подключил стандартно,
библиотеку поставил #include <Adafruit_GFX.h> драйвер дисплея 7735.
вроде бы всё работает - линии круги рисует - но есть проблемы
черные белые цвета соответствуют а вот устанавливаю красный цвет линии - рисует синюю
ставлю синюю - рисует красную. зелёную рисует правильно. Жёлтую - вообще цвет не понятный. Это как то лечится? - нужна помощь
Значит никакой ошибки быть не может.
но цвета то перепутаны (
В библиотеке есть настройка, инвертировать цвета.
Сначала надо разобраться в чём дело с цветом.
//вывод фотокартинок, тест скорости вывода графики
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#include "ris_.h"//файл хранения массивов фотокартинок
#define TFT_CS 22
#define TFT_RST 20
#define TFT_DC 21
// TFT_SCL 18
// TFT_SDA 19
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
long Y=0;//
void setup() {
pinMode (23, OUTPUT);//
digitalWrite(23, HIGH);
tft.initR(); tft.invertDisplay(true);
tft.setRotation(0);
tft.fillScreen(tft.Color565(0,0,0));
}
void loop() {
drawFoto(0,0,ris_1,128,128);//
delay(2000);
drawFoto(0,0,ris_2,128,128);//
delay(2000);
drawFoto(0,0,ris_3,128,128);//
delay(2000);
drawFoto(0,0,ris_4,128,128);//
delay(2000);
}
/////////////////////////////////////////////////////////////////
void drawFoto(int x,int y, const uint8_t *bitmap,int w,int h) {//функция вывода фотокартинки
if(x<0||x+w>128||y<0||y+h>128){return;}
tft.setAddrWindow(x,y,x+w-1,y+h-1);
SPI.beginTransaction(SPISettings(40000000, MSBFIRST, SPI_MODE0));
digitalWrite(TFT_DC, HIGH);
digitalWrite(TFT_CS, LOW);
for(int j=0; j<h; j++) {
for(int i=0; i<2*w; i=i+2) {
SPI.transfer(bitmap[i+1+j*2*w]);SPI.transfer(bitmap[i+j*2*w]);
// SPI.transfer(pgm_read_byte(bitmap+i+1+j*2*w));SPI.transfer(pgm_read_byte(bitmap+i+j*2*w));
}
}
digitalWrite(TFT_CS, HIGH);
SPI.endTransaction();
///
}
////////////////////////////////////////////////////////////////////
16 строка
Это маленький дисплей на st7735
Наверно есть, но мне не надо чёрный с белым инвертировать - они норм и при заливке норм.
Проблема с цветами
А дисплей какой? Их же много вариантов.
…Если просто поменять местами красный и синий, то из числа цвета вытягиваете компоненту RGB и пересобираете обратно в число с последовательностью BGR.
… но только это странно, дисплей особый?
Вот это надо попробовать вечером(я не работе). Правда набор пинов для SPI протокола немного другой я под VSPI настраивал может и неправильно, но такой набор пинов я видел у кого то - вечером напишу что у меня получилось. В любом случае Большое Спасибо за желание помочь
Нет, с Али в свое время приобрёл на нем кроме размера, разрешения, распиновки ещё на обратной стороне написан драйвер 7735. Вот один в один как на Вашей картине
На картинке 128х128 , 0,85" это редко используемый экземпляр.
да, я уже понял когда присмотрелся - сорри.
сия библиотека знает о трёх дисплеях 1.8"
#define INITR_18GREENTAB INITR_GREENTAB
#define INITR_18REDTAB INITR_REDTAB
#define INITR_18BLACKTAB INITR_BLACKTAB
// Use this initializer if using a 1.8" TFT screen:
tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab
// OR use this initializer if using a 1.8" TFT screen with offset such as WaveShare:
// tft.initR(INITR_GREENTAB); // Init ST7735S chip, green tab
Теперь я понимаю, почему тут вместо ответов на решение, стебутся над задающими вопросы.
Нет что бы прочитать про эту настройку и понять, что она решит твой вопрос, написал мне какую-то ерунду.
Ок, Насколько я понимаю - это оттенки монитора ,и как я должен определить, что ставить если дядюшка ХУ, из далёкой страны не написал про это и больше из характеристик ничего нет кроме разрешения, габаритов, драйвера? - чисто экспериментально?
Если дальтоник, то да!
А я думал цвета печатных плат модулей разных.
…ничего печального нет, имея один цвет пикселя можно переделать на любой. Вообще я уже писал, ресурсы МК легко позволяют редактировать имеющиеся в нём изображение при выводе на дисплей, по яркости, контрастности, цветности и т.д.
А я думал, что это цвет на защитной плёнке
Есть такой на котором стрелка есть красн, зелен, син, белый нет голубого и желтого син. скрасным препутаны - точнее вечером напишу нет тут контроллеров. ))