LCD5110_Graph странно работает обновление
- Войдите на сайт для отправки комментариев
Сб, 14/05/2016 - 23:25
Играюсь вот с дисплейчиком с китая, Nokia5110. Пробую разные библиотеки и пытаюсь подобрать самую удобную. Понравилась та, что указана в заголовке, но у нее странный дефект, изображение на экран выводится в момент вызова процедуры update() и сразу стирается. Вот рабочий код, т.е. при нем изображение видно:
#include<LCD5110_Graph.h> LCD5110 lcd(7,6,5,4,3); void setup() { lcd.InitLCD(127); lcd.drawLine(0,0,84,48); lcd.drawLine(84,0,0,48); } void loop() { for(int i=0;i<100;i++) { lcd.update(); } delay(1000); }
А вот к примеру при таком коде изображение не будет видно:
#include<LCD5110_Graph.h> LCD5110 lcd(7,6,5,4,3); void setup() { lcd.InitLCD(127); lcd.drawLine(0,0,84,48); lcd.drawLine(84,0,0,48); } void loop() { lcd.update(); delay(1000); }
Скажите, так и должно быть? Если нет, где я накосячил?
Как известно, программа работает так, как ее написал программист. Но, возможно, совсем не так, как он хотел написать.
Из Вашего кода совершенно непонятно, что Вы хотели сделать. Какой смысл обновлять экран из буфера, если Вы не меняете ничего в буфере?
Содержимое буфера я изменил 1 раз, в процедуре setup(). А далее, изображение на экране появляется всего лишь на доли секунды в момент вызова процедуры lcd.update(). Я же написал, первый вариант кода работает, т.е. когда процедура lcd.update() вызывается многократно, изображение видно. А второй вариант нерабочий, т.к. после lcd.update() идет секундная задержка.
Если, к примеру, эту задержку снизить до 20мс, картинка появится, но нафиг оно такое нужно, если программа будет большая и в некоторых местах полюбому будут задержки. Дело в том, что пользовался библиотекой от Adafruit - с ней таких проблем не было. Формируешь картинку, обновляешь дисплей и он держится пока питание есть. Но с этой библиотекой возникли трудности, решил попользоваться с другими.
По сути, вопрос уже не актуален, т.к. уже решил трудности с Adafruit и пользуюсь ей. Но все же, ситуация интересная, хочется понять и разобраться в чем дело.
P.S. с ардуино и языком С столкнулся только что, раньше работал только с ассемблером, и то не много. так что некоторые тонкости непонятны