Драйвер для LCD от Nokia 3310

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
Garin
Потрогал лапой паяльник
Сообщения: 351
Зарегистрирован: Пн сен 12, 2011 12:13:46

Re: Драйвер для LCD от Nokia 3310

Сообщение Garin »

Aheir писал(а):Есть примеры вывода картинки:
http://radiokot.ru/circuit/digital/measure/34/

Aheir отличный пример, респект. Но для начинающего (первый раз сам пытаюсь подключить) этот -же драйвер да на меге 8, чтобы понять что к чему, текст, картинки символы, линии.
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Aheir »

Так погодите.. На 8-ке же в статье как раз все подключение и делается? А вызовы функций и т.д. (как картинку выводить и все такое) от камня не зависят, можно в примере посмотреть..
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
Garin
Потрогал лапой паяльник
Сообщения: 351
Зарегистрирован: Пн сен 12, 2011 12:13:46

Re: Драйвер для LCD от Nokia 3310

Сообщение Garin »

Так то оно так, на 8-й там...
Однако в проекте кручу верчу , а драйвер версии два туда подключить не могу, вылазит куча ошибок,
И такой интересный момент void LcdStringInv (unsigned char x, unsigned char y); в инверсии ну никак.

Второе , как выводить на экран числовые значения функцией putchar
, по аналогии этой

Код: Выделить всё

 sprintf (lcd_buf, "  %u.%uV",ind/100,ind%100);LcdString (1,6); 

только sprintf много флеша съедает....
Проект прилагаю
Вложения
02Garin.rar
(237.91 КБ) 328 скачиваний
Аватара пользователя
C@at
Вымогатель припоя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

Re: Драйвер для LCD от Nokia 3310

Сообщение C@at »

Здравствуйте.
Очень интересует "Драйвер для LCD от Nokia 3310" может подойти к 5110? ,
Изображение

у 5110 драйвер тоже 8544.

Вот картинка из датшита, из которой почти что все понятно.... но не очень....

Изображение

Приобрести это чудо планируется здесь http://item.taobao.com/item.htm?spm=201 ... id=&pm_id=

И тут еще куча документации и кодов на этот дисплей Nokia5110.rar ... (архив 1.59 Mb , и некоторые тексты на китайском)))))
Вложения
T2Ew.jpg
(40.86 КБ) 1950 скачиваний
ПДФ.GIF
(21.17 КБ) 1930 скачиваний
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Aheir »

C@at, вроде как прикручивали к 5110, точно не могу сказать - сам не пробовал.

Garin, компилятор обычно вполне конкретно пишет, что ему не нравится, хотелось бы более предметно относительно ошибок. Не думаю, что там что-то совсем уж непонятное...
Относительно sprintf. lcd_buf можно заполнять любым удобным образом. Никто не запрещает lcd_buf[0] = 'A'; lcd_buf[1] = 'B'; lcd_buf[2] = 'С'; и т.д.
Потом LcdString (1,6);
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
Garin
Потрогал лапой паяльник
Сообщения: 351
Зарегистрирован: Пн сен 12, 2011 12:13:46

Re: Драйвер для LCD от Nokia 3310

Сообщение Garin »

Aheir писал(а):Garin, компилятор обычно вполне конкретно пишет, что ему не нравится, хотелось бы более предметно относительно ошибок. Не думаю, что там что-то совсем уж непонятное...

Да там не совсем быстро до меня дошло :oops: что у меги 8 нет порта А переправил на порт В все нормально получилось, и спасибо за подсказку lcd_buf то что нужно .

Еще пробую вывести картинку , например эту 84х48
Спойлер

Код: Выделить всё

flash unsigned char rad2Image[504] =
{ 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0x10, 0x10, 0x30, 0x30, 0x10, 0x10,
  0x10, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30, 0x20, 0x20, 0x60, 0x60, 0x40,
  0x40, 0x80, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x40, 0x40,
  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
  0xC0, 0xC0, 0x40, 0x40, 0xC0, 0xC0, 0xC0, 0x40, 0x40, 0x20, 0x20, 0x30,
  0x30, 0x10, 0x10, 0x9C, 0x9C, 0xCC, 0xCC, 0xCC, 0xCC, 0x0C, 0x0C, 0x1C,
  0x1C, 0xF0, 0xF0, 0xF0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F,
  0x3F, 0xFF, 0xFF, 0x3C, 0x3C, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x20,
  0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x20,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x27,
  0x27, 0x07, 0x07, 0x0F, 0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x3C, 0x3C, 0x00,
  0x00, 0x0B, 0x0B, 0x0B, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x80, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
  0xC0, 0x38, 0x38, 0x08, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x38, 0x38,
  0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xF0, 0xF0, 0x08, 0x08, 0x08, 0x0C, 0x0C, 0xC4, 0xC4, 0xC8,
  0xC8, 0xB8, 0xB8, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x07, 0x07, 0xFC, 0xFC, 0x00, 0x00,
  0x00, 0x00, 0x7F, 0x7F, 0xCC, 0xCC, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
  0x8C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F,
  0x0F, 0x1C, 0x1C, 0x20, 0x20, 0x2F, 0x2F, 0xBF, 0xBF, 0xBF, 0x1F, 0x1F,
  0x2F, 0x2F, 0x70, 0x70, 0xC0, 0xC0, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
  0xCC, 0xCC, 0x73, 0x73, 0x2C, 0x2C, 0x2C, 0x11, 0x11, 0x1F, 0x1F, 0x0F,
  0x0F, 0x0F, 0x0F, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x80, 0x80, 0x80, 0x8C, 0x8C, 0xCC, 0xCC, 0xFF, 0xFF, 0x0C, 0x0C,
  0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0F, 0x0F, 0x08, 0x08, 0x30, 0x30,
  0x30, 0xE0, 0xE0, 0xF0, 0xF0, 0xD0, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00, 0x00,
  0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x13, 0x13, 0x08, 0x08,
  0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xC8, 0xC8, 0xC8, 0xF0, 0xF0, 0x30,
  0x30, 0x38, 0x38, 0x38, 0xCF, 0xCF, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x71, 0x71,
  0x71, 0x38, 0x38, 0x08, 0x08, 0x0D, 0x0D, 0x05, 0x05, 0x87, 0x87, 0x42,
  0x42, 0xFE, 0xFE, 0x4E, 0x4E, 0xFE, 0xFE, 0x4E, 0x4E, 0x4E, 0xFE, 0xFE,
  0x44, 0x44, 0xF4, 0xF4, 0x44, 0x44, 0xF4, 0xF4, 0x44, 0x44, 0xF4, 0xF4,
  0x44, 0x44, 0xF6, 0xF6, 0x4E, 0x4E, 0x4E, 0xFE, 0xFE, 0x4A, 0x4A, 0xFF,
  0xFF, 0x03, 0x03, 0x07, 0x07, 0x0D, 0x0D, 0x38, 0x38, 0x70, 0x70, 0xC0,
  0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

на весь экран, проблем нет.
А вот ЭТУ 40х40
Спойлер

Код: Выделить всё

flash unsigned char rad3Image[200] =
{ 0x00, 0xF0, 0x70, 0x08, 0x18, 0x88, 0x88, 0x08,
  0x18, 0x10, 0x30, 0x20, 0x40, 0x40, 0x60, 0x60,
  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x60,
  0x20, 0x60, 0x20, 0x10, 0x98, 0x88, 0xCC, 0xE4,
  0xE4, 0x04, 0x0C, 0xF8, 0xC0, 0x00, 0x00, 0x00,
  0x00, 0xFF, 0x00, 0x00, 0x00, 0x2F, 0x1F, 0x0F,
  0x07, 0x07, 0x00, 0x08, 0x08, 0x04, 0x04, 0x04,
  0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x04, 0x04, 0x84, 0x84, 0x09, 0x01, 0x03, 0x07,
  0x07, 0x0F, 0x00, 0x02, 0x3F, 0xE0, 0x80, 0x00,
  0x08, 0xFF, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
  0x00, 0x00, 0x00, 0x7C, 0xC3, 0x01, 0x79, 0xF9,
  0xF3, 0x7C, 0x80, 0x00, 0x40, 0x40, 0x40, 0x40,
  0xBE, 0x41, 0x91, 0xFC, 0x7D, 0x7B, 0x1C, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0xFF, 0x40,
  0x00, 0x03, 0x0E, 0x3C, 0x24, 0xC4, 0x80, 0xC0,
  0x40, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x15,
  0x00, 0x01, 0x83, 0x06, 0x06, 0x4E, 0x26, 0x86,
  0x03, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x20,
  0x20, 0xC0, 0xC0, 0xE4, 0x3C, 0x0E, 0x07, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xC0, 0x62, 0x31, 0x11,
  0x1B, 0x0A, 0x8E, 0x44, 0xFC, 0x5C, 0xFC, 0x5C,
  0xFC, 0x48, 0xE8, 0x48, 0xE8, 0x48, 0xE8, 0x48,
  0xEC, 0x5C, 0xFC, 0x54, 0xFE, 0x06, 0x0E, 0x1B,
  0x31, 0x61, 0xC0, 0x00, 0x01, 0x00, 0x00, 0x00};


размазывает по всему экрану.
Может в основном цикле , я не указываю ей координаты?

Сейчас делаю так

Код: Выделить всё

            LcdImage(rad3Image); 
            LcdUpdate();

Как то маленькие картинки (и текст рядом) ведь должны выводиться.
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

я новичок в этом деле....прошу помощи=)...принцип компиляции программы я понял...тоесть библиоьека и файл конфинурации компилируются вместе с основной программой...и заливаются hex файлом в контроллер.. выходит что если наша программа называлась Main а библиотека n3310,то после компиляции файл с разрешением intel hex почемуто n3310 ,тоесть файл библиотеки...и его мы заливаем в МК...правильно?.
еще одно....могу ли я использовать библиотеку скачанную из этой статьи, при написании своей программы? Собственно спаял все...заливаю прошивку из статьи...при прошивании на экране появляются разбросанные точки ...по окончании прошивки все исчезает....в чем дело?))..экран с налписью нокиа(оригинал выдран из телефона..лично)...контроллер атмега8...шью Khazama AVR programmer////Для компиляции использую winavr ///avr-gcc..жду ответ)))Заранее спасибо
можно попросить самую простую программу для этого дисплея..например чтобы при подаче питания на экран выводилась линия или буква или чтото в этом роде?если можно то буду очень благодарен...спс
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

кто нибудь мне поможет)))?
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

хотябы обьсните принцип составления и компилирования программы библиотек и тд..тоесть принцип вывода чего либо на экран...)))
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Aheir »

Garin, LcdImage выводит только картинки во весь экран. Для вывода картинок произвольного размера нужно использовать непосредственное заполнение программного буфера, который потом в экран закидывается. Здесь уж придется Вам самостоятельно исходя из размеров Вашей картинки и желаемых координат ее вывода рассчитывать смещения и т.д. Можете подсмотреть, как у меня это в дозиметре сделано.

LEDBEAM, при всем уважении, думаю, Вам стоит сначала обратиться к Обучалке по микроконтроллерам и почитать соответствующий раздел на Форуме. Ну и иные источники тоже, конечно же... Просто слишком общие вопросы, в ответе придется начинать с самых азов.. А это сложно. Я вот даже и не знаю, как Вам ответить.
Оптимизм х (Опыт + Знания) = const
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

О микроконтроллерах знаю вроде неплохо...прошу лишь обьснить принцип создания прошивки для экрана...
Аватара пользователя
Garin
Потрогал лапой паяльник
Сообщения: 351
Зарегистрирован: Пн сен 12, 2011 12:13:46

Re: Драйвер для LCD от Nokia 3310

Сообщение Garin »

Aheir "подсматривал" я там , только для меня это очень сложно, тут когда имееш пример примитив и то сложности...,
ладно буду тренироваться , как то с помощью линий и точек выводить нужный маленький рисунок...

LEDBEAM от пользователя neid в форуме нормальный проект под мегу 8 viewtopic.php?f=25&t=26311&start=45 там только количество LcdClear(); сократить в основном цикле и можно его развивать дальше.
Я по его примеру делал свой вариант viewtopic.php?f=25&t=26311&start=62
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Aheir »

Да не, там ничего жуткого.
Вот смотрите.
У меня есть картинка:
flash unsigned char Radar[8] = {0x03,0x44,0x68,0x78,0x54,0x22,0x20,0x20};
Это картинка высотой в 8 точек, т.е. в один байт.
Это просто набор байт, у Вас оно может быть в виде двумерного массива или как-то еще задано - не важно.
Далее я просто пишу эти данные в нужное место экранного буфера:
for (i = 63; i<71; i++) LcdCache[i] = Radar[i-63];
Т.е. начиная с 63-го байта экранного буфера (это где-то в середине первой строки) пишу данные картинки, 8 байт. Все, первую строку (в этом примере и единственную) записали.
Теперь если у Вас картинка по высоте занимает более 8 точек, нужно вывести вторую "строку", т.е. записать ее в тот же буфер со смещением, равным ширине экрана, т.е. 63+84 = 147, как-то так:
for (i = 147; i<155; i++) LcdCache[i] = Radar[i-147]; // это мы просто продублировали картинку "на строку" ниже, у Вас будут свои данные.

Естественно, LcdUpdate(); жизненно необходим после всего этого.)

Конечно, все это стоит оформить в виде отдельной процедуры с параметрами координаты левого верхнего угла картинки, ее размеров и буфера данных. Будет удобно и красиво. Но я как-то пока обошелся.
Оптимизм х (Опыт + Знания) = const
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

Спасибо...я шью через Khazama AVr Progarmmer ...заливать только hex файл (он там один в папке) и все...или еще чтото делать?и...после заливки должно на экране чтото появится я так понимаю)))?
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

Пишу программу в WinAvr ..появились трудности с makefile нету ли готового мэйкфайла для атмега8...под 3310....?или по принципу...указываем имя библиотеки..и имя главной программы. и остальное как обычно...кстати библиотека из статьи подойдет к любой программе?или это только дял программы в статье?
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

Драйвер отдельно ставить ,а программу отдельно?или оно все вместе скомпилировано в один файл...)))?
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

main.c-это то с чего начинается функция..в ней мы можем изменить выводимые символы на экран....правильно?...библиотека дисплея подключается (в мэйкфайле)..и в main.c берется нужная информация при компиляции?...в итоге после компиляции ...заливаем hex файл ...а фьзы обязательно выставлять?...В общем я собрал схему..заливаю хекс файл прямо из статьи...при прошивке на экране появлятся просто в разброс точки (мусор)...посли окончания прошивки ничего ненаблюдается......как я уже писал СК Атмега8 8мгц...дисплей оригинал с выдавленой надписью нокия.....
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Aheir »

1. 4 поста подряд - оверпост и прямое нарушение правил Форума. Пока я ограничиваюсь предупреждением.
2. По Вашим постам видно, что Вы совершенно не понимаете механизмов и принципов работы компиляторов. Простите, но их разъяснение выходит за рамки данной темы, прошу Вас обратиться в профильные разделы. Здесь это все оффтоп.

Если коротко:
1. Для "оживления" микроконтроллера нужно залить в него прошивку (и иногда файл ЕЕПРОМ) и сконфигурировать фьюзы.
2. Библиотека не имеет существенных особенностей и с минимальными доработками подойдет для любого компилятора. С чуть более глубокими доработками - и для любого процессора.
3. Ничего никуда "ставить" не нужно. О чем вообще речь?
4. Учите матчасть.
Оптимизм х (Опыт + Знания) = const
LEDBEAM
Родился
Сообщения: 10
Зарегистрирован: Пт апр 12, 2013 10:33:12

Re: Драйвер для LCD от Nokia 3310

Сообщение LEDBEAM »

Извените ..был неправ)))...В общем все заработало..но у большому удивлению нормально выводится все(без мусора и сдвигов)....китайской прошивкой..хотя экран вроде оригинальный была выдавлена надпись Nokia...следов того что сам экран был поменян ....тоже нету))и еще все работает отлично но стоит потрогать провода или Мк сразу все тухнет до ВЫКЛ/ВКЛ питание ....а также экран отлично работает от 5ти вольт...питаю прямо от программатора UsbAsp ...всем спасибо...)
Аватара пользователя
mial
Друг Кота
Сообщения: 3254
Зарегистрирован: Ср янв 06, 2010 23:31:56
Откуда: Боровичи, Новг. обл.

Re: Драйвер для LCD от Nokia 3310

Сообщение mial »

Aheir
Спасибо вам за либу. Я тут решил немного поиграться c STM32. Ну и в качестве обучения решил портировать вашу либу под STM32, Keil.
Вроде все работает. Правда не пробовал картинку выводить, но основные функции работают. Ваша тестовая прога без картинок работает один в один. Если кому надо, то могу выложить мои потуги :))
P.S. Попробовал, картинки тоже выводит. :)
Прототипы печатных плат на заказ https://radiokot.ru/forum/viewtopic.php?f=54&t=122701
Ответить

Вернуться в «Статьи»