Вывод текста на lcd Nokia 6610

Демо-проект вывода на экран Nokia 6610

Валера Гончаренко продолжает работать над библиотекой вывода на lcd-экран Nokia 6610. Библиотека постепенно обновляется. Сейчас добавлены функции вывод текста и шрифт 8х8 пикселей. Скачать библиотеку, исходники демо-проекта, использующего эту библиотеку, а так же откомпилированную прошивку можно ниже.

На видео можно посмотреть, как работает вывод на экран, при использовании этой библиотеки:

YouTube video

Немного фотографий процесса:

Демо-проект вывода на экран Nokia 6610

Демо-проект вывода на экран Nokia 6610

Так можно реализовать прогресс-бар (в библиотеке этого нет, это сделано в демо-проекте).

Вывод текста разными цветами

Демо-проект вывода на экран Nokia 6610

Демо-проект вывода на экран Nokia 6610

 

Демо-проект вывода на экран Nokia 6610

Демо-проект вывода на экран Nokia 6610

 

Вливайтесь в обсуждение

  34 комментария

  • Привет,
    я пытаюсь отсимулировать это дело в протеусе, выходит фигня со цветом
    симулирую две модели одновременно
    http://imageshost.ru/photo/67096/id2142367.html
    http://imageshost.ru/photo/73837/id2142366.html
    http://imageshost.ru/photo/65682/id2142365.html
    тут фотки 

  • -Валера-

    12 лет назад

    Приветствую, в Протеусе не проверял- все сразу в железе. Сейчас попробую…

  • -Валера-

    12 лет назад

    Значит так. Попробую пролить немного света: в протеусе у меня также криво выводятся цвета, но текст корректен — не так как на скриншоте. При написании библиотеки — сильно не раскуривал этот вопрос, подал команду MADCTL и один байт данных 0х03 — все, включен режим 12 -бит,все работает. Первое что пришло на ум при некорректном выводе цвета (далее по тексту- проверки только в железе ) — модель для протеуса «собрана» с цветопередачей по умолчанию 8-бит. Я проштудировал  даташит, по рекомендациям из него подал команду  RGBSET и за ней 20 байтов таблицы цветов (это вкл. режим — 8 бит ), далее пляски с бубном -результат ноль. Собственно вывод текста и графики присутствует, но цветопередача не соответствует действительности. Затем я вспомнил, что где-то говорилось о том, что производители LCD ( зачастую NO NAME ) умышленно не вкл. в контроллерах LCD при их программировании некоторые команды. Аргумент таков — а зачем ? Если данный режим не будет использоваться. Так что, вполне вероятно ( к чему я склоняюсь) мой образец LCD НЕ оригинальный, и команда цветопередачи 8 бит- в нем не включена.

    • -Валера-

      12 лет назад

      Во втором предложении- имел ввиду, что в протеусе кракозяблы, а на живом LCD- корректный текст с некорректной цветопередачей.

  • -Валера-

    12 лет назад

    У меня возник вопрос- может стоит добавить в библиотеку вывод текста БОльшим форматом ? Например 24х16 пикселей, или…  Собственно, интересно мнение о востребованности текста большим форматом, если — да, то каким именно. А также интересует тип шрифта-ведь при большей величине будет наиболее заметно качество его прорисовки.

    • ИМХО, весть текст выводить большим шрифтом смысла нет. Цифры — да, текст — ни к чему.

      • -Валера-

        12 лет назад

        Понятно, попробую чего-нибудь с цифрами сделать. Какой размер цифр сделать ?

        • Ну хз, попробуй 24х16. Может 24х10. Подбирай экспериментально, чтоб симпатично было.

    • Виталий

      7 лет назад

      Валера, скажите, пожалуйста, что-нибудь получилось с большим цифрами?
      Если да, то где можно посмотреть библиотеку?
      П.С. У самого, к сожалению, не хватает знаний и моя стрельба наугад результата не дает…

      • Валерий

        7 лет назад

        Конечно же- всё получилось! )
        Давным давно ))Случайно оказался около компьютера- и вы написали. Что именно нужно? Функция вывода больших цифр? Или проблема в другом?

        • Валерий

          7 лет назад

          Если у вас «запал» не пропал- напишите мне на почту в чём проблема ( gonch восьмёрка, дальше — собака и маилру ), постараюсь помочь!)

  • Никита

    11 лет назад

    Сделал всё как у Вас в iarе. Но не получилось с выводом текста. По первых он не берёт массив символов. Во вторых он не хочет работать вот с этой функцией. Как можно ешё вывести текст?
    Я всё заключил в один лист main.c Чтоб не использовать отдельные библиотеки
    void nlcd_Char(char c, unsigned char x, unsigned char y, int fColor, int bColor)
    {
       int    i;
       int    j;
       unsigned char   nCols;
       unsigned char  nRows;
       unsigned char  nBytes;
       unsigned char   PixelRow;
       unsigned char   Mask;
       unsigned int   Word0;
       unsigned char *pFont,   *pChar;
     
       pFont = (unsigned char *)Nokia6610_fnt8x8;  
     
       nCols = pgm_read_byte(pFont);
     
       nRows = pgm_read_byte(pFont + 1);
     
       nBytes = pgm_read_byte(pFont + 2);
      
       pChar = pFont + (nBytes * (c — 0x1F));
     
       for (i = 0; i<nRows; i++)
       { 
          PixelRow = pgm_read_byte(pChar++);
          Mask = 0x80;
          for (j = 0; j < nCols; j += 1)
          {
             if ((PixelRow & Mask) == 0)
             Word0 = bColor;
             else
             Word0 = fColor;
             nlcd_Pixel( y+j,x+i, Word0);
             Mask = Mask >> 1;
          }  
       }
       nlcd_SendByte(CMD_LCD_MODE,NOP); 
    }

    • Хз. Я с ИАРом не работаю. Почему то не сложилось… 🙁 Поэтому что-либо конкретное сказать не могу.

  • Михаил

    11 лет назад

    Спасибо за вашу статью и библиотеки! у меня проблема. текст выводится справа налево, как бы зеркально. вот тут фото http://s6.hostingkartinok.com/uploads/images/2013/03/f8e2b00d220835f5cb75dcae3c3d852f.jpg
     
    помогите разобраться в чем дело. 
    также почему-то не горит подсветка

    • У тебя инверсии включены. (Всё наоборот). Посмотри команды и выключи инверсию. Также есть команды задаюшие начало и конец рисования пикселей.

    • Валера

      11 лет назад

      Приветствую, проблему с выводом текста — решили? Я так понимаю при заливке демо-прошивки, неккоректно отображается текст? В чем собсно, вопросы? Инициализацию дисплея -(что-либо) меняли?  Вроде бы все прокомментировал довольно подробно..)

      • Михаил

        11 лет назад

        Неа, не получилось его одолеть. Текст отображается зеркально. Скачал дэмо прошивку и залил в мк, ничего в ней не меняя. за выключенную инверсию отвечает это «#define LCD_PHILLIPS_INVOFF»?

  • -Валера-

    11 лет назад

    «#define LCD_PHILLIPS_INVOFF — инвертирует цвет, блин, уже подзабыл все)) В Winavr- уже не работаю, юзаю студию, отсюда сложности.. 
    Достал дисплей, установил Winavr- в общем за отображение отвечает команда nlcd_SendByte(CMD_LCD_MODE,MADCTL);  для которой необходимо задать параметр 1 байт- в библиотеке ясно же прокомментировал- Внимательно курим даташит на стр. 43 !) 
    Не знаю, что за компилятор у вас- я изменил инициализацию- теперь мой дисплей отображает данные один в один как у вас на картинке))   Не могу здесь обновленную демо-прошивку выложить..

    • -Валера-

      11 лет назад

      После команды MADCTL отправил данные 0х00 и дисплей стал отображать информацию как у вас на фото..

      • Михаил

        11 лет назад

        Огромное спасибо! отправил 0x76 после MADCTL и все заработало как надо! 

        • -Валера-

          11 лет назад

          Вот и отлично), только думаю что все же вы методом научного тыка  данные отправили- младшие три байта не значащие поэтому, будет правильнее 0х70

    • Не могу здесь обновленную демо-прошивку выложить..

      Валера, без проблем, шли на мой-адрес, ты же знаешь его, я выложу.

    • Все, выложил поправленную прошивку от Валеры. Можно качать.

  • Михаил

    11 лет назад

    Привет еще раз! Слушайте, а бороться с бледной подсветкой не подскажете?

  • project isis files ?

    • -Валера-

      8 лет назад

      Hello , isis project is not used , did immediately with a live display . If desired, you can download the network display model , only need to be borne in mind that the pixel output function — will have perepisat- otherwise displayed incorrectly in isis . Sorry for my English. ))

Добавить комментарий

Отправляя комментарий, вы автоматически принимаете правила комментирования на сайте.

Правила комментирования на сайте:

  1. Не следует писать исключительно заглавными буквами. Это дурной тон.
  2. Запрещены комментарии не относящиеся к тематике сайта и самой статье.
  3. Запрещены реплики оскорбляющие других участников проекта. Давайте будем взаимовежливы.
  4. Запрещены нецензурные слова, идиоматические выражения, призывы к межнациональной и межконфессиональной розни.
  5. Запрещено обсуждение наркотических веществ и способов их применения.
  6. Запрещены комментарии с призывами к нарушению действующего законодательства РФ (Уголовного и Административного кодекса).
  7. Запрещены ссылки на сторонние ресурсы без согласования с владельцем сайта.
  8. Запрещается использовать в качестве имени комментатора слоганы/названия сайтов, рекламные фразы, ключевые и т.п. слова.

Следует учитывать следующее - все комментарии проверяются на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удален, а Ваш IP-адрес будет добавлен в черный список без предупреждения!

Учетные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.