Драйвер для LCD от Nokia 3310
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Испытал библиотеку на экране 3410, там все тоже, просто больше разрешение. Основная проблема что у меня возникла - это скорость програмного SPI. Для сравнения можно посмотреть видео.
hard SPI
soft SPI
Ну и стоит обратить внимание на то как выглядит батарейка.
hard SPI
soft SPI
Ну и стоит обратить внимание на то как выглядит батарейка.
Я не Сашок!!!
Re: Драйвер для LCD от Nokia 3310
Всем привет! Решил покурить данную статью http://radiokot.ru/articles/29/, взял за основу драйвер второй с поправками(внизу статьи) и исходники, переписал вывод информации для двух ds18b20 и запустил в Протусе. Вот что получилось:
мало того это дело все еще мигает в Протусе, появитяс пропадет, появится пропадет.
Думал в Протусе че то не так, собрал в железе таже фигня, при чем надпись "Термометр" очень тусклая, инфа с датчиков четкая, но не мигает уже
В чем причина может быть. Пробывал закоментить #define china 1, при компиляции ошибка появляется(в форуме кто то упоминал)
вот выложил исходники свои, помогите советом.
мало того это дело все еще мигает в Протусе, появитяс пропадет, появится пропадет.Думал в Протусе че то не так, собрал в железе таже фигня, при чем надпись "Термометр" очень тусклая, инфа с датчиков четкая, но не мигает уже
В чем причина может быть. Пробывал закоментить #define china 1, при компиляции ошибка появляется(в форуме кто то упоминал)
вот выложил исходники свои, помогите советом.
- Вложения
-
- 02.rar
- (167.06 КБ) 441 скачивание
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Если отличается "яркость" надписей на экране, значит, часть экрана Вы обновляете через стирание, а часть - нет... Пока только такая мысль в голову приходит. Если отображение по сути корректное, то china здесь не при чем, оно не для того.
Оптимизм х (Опыт + Знания) = const
Re: Драйвер для LCD от Nokia 3310
Aheir писал(а):Если отличается "яркость" надписей на экране, значит, часть экрана Вы обновляете через стирание, а часть - нет... Пока только такая мысль в голову приходит. Если отображение по сути корректное, то china здесь не при чем, оно не для того.
Разобрался, все коректно выводится и все одного оттенка, осталось только мерцание изображеняи, в чем причина понять не могу.
Re: Драйвер для LCD от Nokia 3310
Aheir писал(а):Шо за мерцание?
на доли секунду пропадает избражение, прям на очень маленькие доли. и с определенной частотой, поэтому получается мерцание.
Вот еще раз выложу свой исходник поправленный и модель в протусе.
- Вложения
-
- 02.rar
- (198.47 КБ) 414 скачиваний
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Такое встречал, только когда сам косячил с программой... Таки похоже, что что-то с обновлением экрана...
Оптимизм х (Опыт + Знания) = const
Re: Драйвер для LCD от Nokia 3310
Код: Выделить всё
while (1)
{
delay_ms(50); // задержка для устранения дребезга контактов кнопок и она же - шаг изменения значений яркости
// чтобы режим не менялся каждые 50mS, при нажатии на кнопку разрешаем только одно изменение режима
if (Mode_Change_Enabled)
{
if (MODE_Button) // если нажата кнопка смены режима
{
if ((++Mode) == 3) Mode = 0; // меняем режим по кольцу
Mode_Change_Enabled = 0; // запрещаем при нажатой кнопке повторную смену режима
};
}
// когда кнопка отжата, опять разрешаем смену режима
else if (!MODE_Button) {Mode_Change_Enabled = 1;};
LcdClear();
switch (Mode) // если ручной режим
{
case Manual:
{
sprintf (lcd_buf, "ЯРКОСТЬ");LcdString (5,1);
if (UP_Button) // если нажата кнопка увеличение яркости
{
if (OCR1A < 255) OCR1A++;
};
if (DOWN_Button) // если нажата кнопка уменьшения яркости
{
if (OCR1A) OCR1A--;
};
/****Заполняем шкалу по процентам****/
x1=((OCR1A*100)/254); //Расчет % яркости
x2=x1; //Переменная двывода % яркости
x1=(x1*83)/100; //Расчет заполенния по % яркости относительно Х
LcdLine (1,34,x1,34,2); //
LcdLine (1,35,x1,35,2); //Рисуем заполение шкалы
LcdLine (1,36,x1,36,2); //
LcdLine (0,32,0,37,2); //
LcdLine (83,32,83,37,2); // Пустая шкала
LcdLine (0,32,83,32,2); //
LcdLine (0,37,83,37,2); //
/****************************************/
sprintf (lcd_buf, " < >");LcdString (1,6); //Знаки больше и меньше по краям экрана
sprintf (lcd_buf, "%i",x2);LcdStringBold (6,3); //Вывод процента яркости
LcdUpdate();
delay_ms(10);
break;
};
LcdMode (2);
case Auto: // авто тремрметр и вольтметр
{
ind=((100.0*(adc_data[0]<<2))/204)*4; //Расчте напряжения
sprintf (lcd_buf, " ( Термометр");LcdString (1,1); //Символ ( это часть значки термометра
temperature(); //Вызов функции температурной
/*ПЕРВЫЙ ДАТЧИК*/
sprintf (lcd_buf, " ) IN %i'C", temper[0]); LcdString(1,2); //вывод температуры 1ого датчика, символ ) это часть значки термометра
/*ВТОРОЙ ДАТЧИК*/
sprintf (lcd_buf, " * OUT %i'C", temper[1]); LcdString(1,3); //вывод температуры 2ого датчика, символ * это часть значки термометра
#asm("sei")
sprintf (lcd_buf, "Вольтметр");LcdString (1,5);
sprintf (lcd_buf, " %u.%uV",ind/100,ind%100);LcdString (1,6); //Вывод напряжения
LcdBar(65, 27, 75, 45, 10*(3+1)); //Вывод значка батареи
LcdUpdate();
delay_ms(10);
break;
};
LcdMode (2);
case Max:
{
sprintf (lcd_buf, "Режим 3",); LcdString(1,2); //пока не придумал третий режим
LcdUpdate();
delay_ms(10);
break;
};
LcdMode (2);
};
}что не так делаю?
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Зачем LcdClear(); в основном цикле каждые 50 мс? Отсюда и мерцание.... Да и LcdMode (2); не нужно постоянно дергать...
LcdClear(); физически очищает экран, для очистки только буфера напишите свою функцию или дождитесь новой версии от меня)
LcdClear(); физически очищает экран, для очистки только буфера напишите свою функцию или дождитесь новой версии от меня)
Оптимизм х (Опыт + Знания) = const
Re: Драйвер для LCD от Nokia 3310
Aheir писал(а):Зачем LcdClear(); в основном цикле каждые 50 мс? Отсюда и мерцание.... Да и LcdMode (2); не нужно постоянно дергать...
LcdClear(); физически очищает экран, для очистки только буфера напишите свою функцию или дождитесь новой версии от меня)
Разобрался с библиотекой! Все мерцаний нет, работает!)))
Сненерировал картинку не знаю как её вывести?
почему файл рисунка не выкладываете, или объясните как картину выводить?
Re: Драйвер для LCD от Nokia 3310
neid писал(а):Разобрался с библиотекой! Все мерцаний нет, работает!)))
Сненерировал картинку не знаю как её вывести?
почему файл рисунка не выкладываете, или объясните как картину выводить?
Вот здесь пример посмотри, там картинка есть http://we.easyelectronics.ru/lcd_gfx/bi ... -3310.html
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Есть примеры вывода картинки:
http://radiokot.ru/circuit/digital/measure/34/
http://radiokot.ru/circuit/digital/measure/34/
Оптимизм х (Опыт + Знания) = const
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Здесь как бе обсуждается вполне конкретная реализация из соответствующей статьи, Ваш пример был бы в кассу в другой теме форума по этому экрану (она есть в разделе по микроконтроллерам)
Оптимизм х (Опыт + Знания) = const
Re: Драйвер для LCD от Nokia 3310
Здравствуйте. Помогите перевернуть экран. Через функцию LcdUpdate или может есть команда аппаратного переворачивания, в даташите я не нашел. Экран влезает в мою коробочку тока контактами вниз. Строчки символов перевернуты. Заранее спасибо.
Re: Драйвер для LCD от Nokia 3310
CanceR писал(а):Здравствуйте. Помогите перевернуть экран. Через функцию LcdUpdate или может есть команда аппаратного переворачивания, в даташите я не нашел. Экран влезает в мою коробочку тока контактами вниз. Строчки символов перевернуты. Заранее спасибо.
перевернуть шрифт
-
Monchik
- Родился
- Сообщения: 1
- Зарегистрирован: Ср фев 02, 2011 16:30:45
- Откуда: Смоленск
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Компилятор CV2.05 не понимает директиву #elif. Написал ему #else. Так, вроде, работает.
- Pa5ha
- Прорезались зубы
- Сообщения: 243
- Зарегистрирован: Ср авг 31, 2005 20:09:08
- Откуда: Петрозаводск, Карелия.
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Не завелось у меня ничего почему-то. Пытался дисплей от нокии 6030 заюзать - мертв. Подпаял от 3310 оригинальный, с надписью. Тоже признаков жизни не подает. На порты подпаяны светодиоды. Моргают - вывод идет. Мега питается от 5в, дисплеи от 3.3 l78l33, к портам подпаяны через делители 2кОм + 3.3 кОм.
Куда потыкать тестером даже не знаю.
Куда потыкать тестером даже не знаю.
2kb of eeprom should be enought for everybody (C) Bill Gates` cat 
- valexus
- Нашел транзистор. Понюхал.
- Сообщения: 192
- Зарегистрирован: Вс окт 04, 2009 21:19:32
- Откуда: Украина , Житомир
Re: Драйвер для LCD от Nokia 3310
Ну светодиоды с портов лучше убрать, сигнал они конкретно искажают. И еще проверь напряжение на кондере вольтдобавки дисплея, там около 9 вольт должно быть.
Заело -- нажми посильнее, сломалось -- не страшно , все равно надо было менять.
- Pa5ha
- Прорезались зубы
- Сообщения: 243
- Зарегистрирован: Ср авг 31, 2005 20:09:08
- Откуда: Петрозаводск, Карелия.
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
Светодиоды? Хм, окай )
Кондер, который 4.7 мкф на 7, 8 ногах висит? Ок.
Вообще, оказалось, что у меня одна нога была не пропаяна. Но результат после исправления не поменялся. На контактах дисплея напруга есть, но при подаче питания он никак не реагирует. Мелтовский когда заводил - там хоть развертка сразу появлялась, было видно, что дисплей отреагировал, хоть и не инициализирован и ничего не показывает.
Кондер, который 4.7 мкф на 7, 8 ногах висит? Ок.
Вообще, оказалось, что у меня одна нога была не пропаяна. Но результат после исправления не поменялся. На контактах дисплея напруга есть, но при подаче питания он никак не реагирует. Мелтовский когда заводил - там хоть развертка сразу появлялась, было видно, что дисплей отреагировал, хоть и не инициализирован и ничего не показывает.
2kb of eeprom should be enought for everybody (C) Bill Gates` cat 
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Re: Драйвер для LCD от Nokia 3310
А дисплей-то жив? Есть уверенность? Вообще, так, чтобы совсем ничего не показывал, не бывает. Ищите косяки с подключением и настройкой в программе.
Оптимизм х (Опыт + Знания) = const