Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593
Пытаюсь изменить ориентацию изображения дисплея на вышеобозначенной плате с портретной на landscape. Поиск в сети мало что дал, все советуют изменить значение регистра 0x36 MADCTL контроллера ili9341 и соот-но регистры, отвечающие за кол-во столбцов/страниц. В результате экран молчит показывая то справа то слева белую полоску шириной 80 пикселей в зависимости от значения регистра 0х36.. Драйверы дисплея пользую родные ст-шные куба для F4 для этой доски. В хедерах высоту/ширину дисплея поправил. Куда дальше копать? Менять настройки LTDC?
Во-первых там дисплей подключен напрямую по RGB интерфейсу к процу. т.е. ili9341 и его регистры там не при чем. Во время инициализации этот ili отходит в сторону давая прямой доступ к пикселям дисплея. Сделано это для того чтобы дать возможность использовать встроенный в проц контроллер со своими аппаратными фишками(типа наложение слоёв друг на друга и т.д.).
Так вот я как-то баловался с эмуляцией приставки на этой дискавэри. Эмулятор выдает кадр в виде массива пикселей. Этот массив пикселей естественно я сконфигурировал как фрейм буфер для LCD контроллера проца(как то она тм хитро называется...LTDC что-ли) и получил портретную ориентацию со всеми вытекающими... Долго курил даташит... В итоге не придумал ничего лучше, чем вручную крутить этот массив. Потому как аппаратно сканировать его по столбцам нельзя(нет такого режима у LTDC, он выгребает пиксели по смежным адресам и только вперед).