Неразбериха c цветами дисплея

Unikolai
Offline
Зарегистрирован: 21.09.2016

Дисплей на базе Т7735S и есть некоторые непонятки с цветами... схема там вроде как RRRRRGGGGGGBBBBB, и красный цвет, вроде как, должен быть 1111100000000000, но нет - красный цвет это 0xFFE0 (и именно это вот выдает красный цвет на дисплее, но если это же перевести в двоичную систему - 1111 1111 1110 0000, то выходит так...)

хотя вот это 0xFFE0 вроде как должен быть желтым, а

0xF800 должен быть красным, но он у меня желтый...в чем тут загвоздка?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

На первый взгляд кажется, что у Вас инвертированный сигнал. Посмотрите, чему соответствует 0х000000 и 0xffffff. Должно быть черный и белый, а у Вас, возможно, наоборот.

Unikolai
Offline
Зарегистрирован: 21.09.2016

В какой-то момент времени я тоже так подумал, но нет, вроде как..вообще у меня порой происходят какие-то необъяснимые вещи, и чобы все наладилось нужно перезапустить арудино или поменять версию...но я все это делал вчера)

http://arduino.ru/forum/apparatnye-voprosy/st7735s-096-80x160-spi-krivo-rabotaet вот тут человек тоже пишет про некоторые странности при работе с данным дисплеем

я же использовал для примера скетч отсюда https://thesolaruniverse.wordpress.com/2020/12/26/the-tiny-tft-that-delivers-the-0-96-inch-80160-tft-display-with-st7735-driver-for-arduino/. Из него в свою очередь вытащил только цвета 

  #define BLACK   0xFFFF
   #define WHITE   0x0000
   #define BLUE    0x07FF
   #define RED     0xFFE0 
   #define GREEN   0xF81F
   #define CYAN    0xFFE0
   #define MAGENTA 0x07E0
   #define YELLOW  0xF800 
   #define ORANGE  0xFE00  
   #define POISON  0x68FF

и как мы видим тут красный -  желтый, а желтый красный, хотя такое ощущение, что и у человека цвета малясь не сходятся

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну так сравните то, что я Вам написал с тем, что в приведенном Вами фрагменте.

Я писал о прямом кодировании, Ваш фрагмент - инверсное. 

Какой из этих вариантов реализуется на Вашем дисплее при тех настройках, которые Вы используете, я не знаю. А Вы это можете проверить.

Unikolai
Offline
Зарегистрирован: 21.09.2016

ну дак дело то в том, что я пытался задать цвет инверсно, то есть, к примеру, красный 0000011111111111, но это не дало результатов - был какой-то розовый

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Unikolai, у Вас в сообщении фигурирует определение нескольких цветов. Выясните, каким цветам соответствуют первые 8 констант. Единственный цвет - это слишком мало для анализа ситуации.

Только CYAN поправьте 0x003f

Unikolai
Offline
Зарегистрирован: 21.09.2016

ну я думал может это какой-то распространенный косяк, люди ведь поначалу и в регистрах путаются) дома сегодня буду опять копаться

andreyii
Offline
Зарегистрирован: 15.04.2020

Включи инверсию дисплея (например для библиотеки Adafruit_ST7735 : invertDisplay(true))

Формат пикселей в этом дисплее: GBR.

Unikolai
Offline
Зарегистрирован: 21.09.2016

да да, вчера я это уже понял, очень странная фигня, но все равно спасибо!