у меня сейчас так: подаю питание. включается экран белым зажигаются все пиксели. по программе после включения ждется 1 секунда и происходит инициализация экрана. в этот момент он чуть темнеет. такое чувство, что уменьшается подсветка. может я как-то коряво вывожу пиксели на экран. покажите, пожалуйста, самую простую функцию вывода точки на экране.
Вывод точки тут не при чем. После инициализации дисплей должен заполниться цветным шумом, если не сделать заливку. Проблема в инициализации или передаче данных...
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Не, это неправильная инициализация была. Должно быть все заполнено цветными точками. Да, кстати, в моем TFT модуле часть контактов шлейфа была непропаяна должным образом и контакта не было...
Опыт растет прямо пропорционально выведенному из строя оборудованию...
КАШАК писал(а):Должно быть все заполнено цветными точками.
ну странности какие-то. я уже попробовал 4-и разные инициализации. все разные. одна ваша минимальная. другая с предыдущей страницы. третья китайская. последняя ардуиновская. пропайку пересмотрел с лупой всю. куда еще смотреть?
может аналогично монохромнику 128х64 надо питание на ножку RESET дать?
все получилось. проблема была в переключателе на платке шилда. в даташите есть такое: СпойлерQ1: What is 2 way DIP switch on the back of the shield? A1: The 0~7 pins is used as LCD data bus, whereas the pin0 and pin1 is UART port which is used by the bootloader when uploading the code. The DIP switcher switch ON/OFF the pin0 and pin1 from the LCD data bus, if it conflicts when uploading the code please switch it OFF. поигравшись с ним - получилось.
теперь переделываю библиотеку UTFT ардуины. заливка, квадратики и кружочки уже есть ))
пардон, если ошибаюсь темой на счет вопроса, но как-то мне вообще не доганть:
в библиотеке ардуины есть функция отрисовки изображения: Спойлерvoid drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale) { unsigned int col; int tx, ty, tc, tsx, tsy; int r, g, b;
if (scale==1) {
LCD_CLR_CS(); setXY(x, y, x+sx-1, y+sy-1); for (tc=0; tc<(sx*sy); tc++) { col=pgm_read_word(&data[tc]); LCD_Write_DATA(col>>8,col & 0xff); } LCD_SET_CS();
}
функция pgm_read_word запрятанна через одно место в файле: pgmspace.h и выглядит так: Спойлер#define pgm_read_word(address_short) pgm_read_word_near(address_short) #define pgm_read_word_near(address_short) LPM_word((uint16_t)(address_short)) #define LPM_word(addr) __LPM_word_enhanced(addr)
hd44780 писал(а):Я нормально вывожу BMP-шки. Формат пикселя предварительно преобразую к тому, какой требует дисплей. У меня ILI9320, формат пикселя RRRRRGGGGGGBBBBB.
Народ, слышал что существуют мобильники/коммуникаторы и т.п. с дисплеями с VGA-интерфейсом. С трудом в это верится, но может это так на самом деле? И как тогда отличить их? Потребовался девайс умеющий общаться с аналоговым выходом видюхи.
Зато с RGB интерфейсом полно, все, что имеет размер более 3,5 дюйма практически наверняка именно этим интерфейсом оснащены. Хотя в последнее время и этот интерфейс уходит в прошлое в пользу последовательного дифференциального, а-ля LVDS, широко применяемого в TFT панелях ноутбуков и мониторов и ЖК телевизоров.
з.ы. совсем забыл - возможно имелись ввиду TFT панели с аналоговым RGB интерфейсом (правда в мобильниках такие не встречал, зато в фотоаппаратах и в дешевых фоторамках и телевизорах они чаще всего и встречаются), но и там с VGA ничего общего нет.
[color=#FFBF00]На любой вопрос даю любой ответ[/color]