Свежие обсуждения
Микроконтроллеры

Графический ЖК индикатор

1 4
viczai: С каждой партии по чуть чуть. 

Даже и крыть-то нечемlaughing
С такой позиции оправдать можно практически ВСЁ!

 

Ну так это второй случай в практике непосредственно. А в интернете я и 5 таких вопросов видел по индикаторам, это при совпадении интерфейсов и драйверов естественно. А уж вобще не показывает, это от начинающих ещё больше. Но эти нам не нужны.  Объясняю как могу. Легче то всё равно не станет. Если найдёте другой драйвер == хорошо. Я только за. А не найдёте, хоть так будете знать, что нужно делать и какой объём. :) И где на достигнутом остановиться. 

 
vintik: Цифры выводятся на экран со смещением вниз на один пиксель

координаты стартуют с "0" или "1"? :)

 

Задаются с "0", а выводятся со второго пикселя в столбце. На видимую область приходится 31х128 пиксель. 
Чтобы сказать, что инициализация кривая, так нет. Другие по SPI шине работают нормально. Правда у тех есть
возможность RESTa. У этого по I2C  RESETа нет. Если бы знать, что у кого-то работает нормально, можно было-бы
продолжить поиски причины.

 
vintik: Другие по SPI шине работают нормально

А проверили режим по фронту/спаду, когда дисплей защелкивает значение. Может он один синхроимпульс лишний получает (не с того бита отсчитывает в какой-то момент).

 

Проблема вылазит, когда задаются конечные координаты. В примерах от Adafruit, (а у них всегда идет заполнение всего экрана), не задаются эти самые конечные. Т.е. стартовые есть и всё. С такими условиями нужно выводить постранично с фиксированной длиной. Собственно, так и сделано. И хоть программа увеличилась, но область 32х128 сохранилась.
По мануалу, задав координатами область заполнения, можно было вывести весь обьем за раз. Но если появляется конечная координата в столбце, область заполняется со смещением.

 

Как то что то убиралось когда PAUSE 100 штук(пусть будет 92 подбором) вставлял и что то менялось в лучшую сторону у индикатора. Т.е. как бы во время паузы он этот лжеимпульс не брал. Может и у Вас сработает. Сразу говорю, не помню уже ничего. А дальше асс ссем бляр. Он то же тайминг подборным может проигнорировать импульс. Или просто длинный импульс воспринимает за два. Да и ещё проверьте частоты мк и лцд. Чтобы там не было выскакиваний из рекомендуемого. Потому что макросы все пишутся под тайминги какие то. Это уже как я говорил ещё не застрелиться, но уже...:)

 

По случаю посмотрел инициализацию OLED 64x128 1,3" на драйвере HS1106. На дисплей всё аналогично выводится - по страницам. Восемь страниц - восемь строк. В центре экрана на часы выделено три строки. 

 
1 4