реклама на сайте
подробности

 
 
> Пример для LPC2106, нужен пример для LPC2106
:OveR:
сообщение Jul 19 2006, 07:05
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 26-02-06
Из: Россия, Москва
Пользователь №: 14 695



Господа, киньте, пожалуйста, примером на lpc2106 (на C или ASM) инициализации и работы с индикатором

Индикатор двухстрочный (типа мэлтовского MT16S2D), режим работы - 4-х битный.
Если что: overthrash (a) mail . ru


--------------------
// OveR
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Jul 19 2006, 08:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(:OveR: @ Jul 19 2006, 10:05) *
.. киньте, пожалуйста, примером на lpc2106 (на C или ASM) инициализации и работы с индикатором

Пожалуйста, не сочтите за труд воспользоваться поиском. Даже на данном форуме Вы найдете не менее дюжины примеров подходящих под категорию просимого.
Другое дело, что все просмотренные в свое время мной представляют достаточно печальное зрелище :-(, но в определенных условиях с определенными ограничениями очевидно работоспособны.
Если Вам нужно не для "абы заработало", то рекомендую:
- изучить документацию на контроллер/контроллеры;
- просмотреть найденные исходники;
- попробовать написать свое в меру своего разумения и своих потребностей.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
:OveR:
сообщение Jul 19 2006, 09:50
Сообщение #3





Группа: Новичок
Сообщений: 10
Регистрация: 26-02-06
Из: Россия, Москва
Пользователь №: 14 695



Цитата(zltigo @ Jul 19 2006, 12:02) *
Пожалуйста, не сочтите за труд воспользоваться поиском. Даже на данном форуме Вы найдете не менее дюжины примеров подходящих под категорию просимого.
Другое дело, что все просмотренные в свое время мной представляют достаточно печальное зрелище :-(, но в определенных условиях с определенными ограничениями очевидно работоспособны.
Если Вам нужно не для "абы заработало", то рекомендую:
- изучить документацию на контроллер/контроллеры;
- просмотреть найденные исходники;
- попробовать написать свое в меру своего разумения и своих потребностей.

На данном форуме не нашел (может плохо искал, но комбинаций слов и поисковых фраз было больше двух десятков). Если Вы укажете поисковые фразы/слова, по которым найдутся примеры - буду премного благодарен.
Далее.
Описание индикатора и его контроллера посмотрел. Алгоритм инициализации есть (он и был до обращения сюда).
К сообщению прикрепил исходник. Код неоптимизирован, для простоты расписано как можно подробнее и проще. Буду благодарен, если кто-нибудь укажет в коде на ошибки (может вообще надо по-другому). =)

P.S. А такой же алгоритм (написанный в другом ассемблере, ессно) работает на msp430f149 и с индикатором MT-16S2D. А на lpc2106 индикатор ведет себя так: после включения на индикаторе высвечивается верхняя строка полностью (просто высвечены знакоместа сколько-то на сколько-то пикселей). И все. Перенос вызова подпрограмм в цикл (т.е. постоянное обновление на индикаторе символов в разных местах) результата не дал.
Прикрепленные файлы
Прикрепленный файл  main.txt ( 7.41 килобайт ) Кол-во скачиваний: 93
 


--------------------
// OveR
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 19 2006, 10:26
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(:OveR: @ Jul 19 2006, 12:50) *
P.S. А такой же алгоритм (написанный в другом ассемблере, ессно) работает на msp430f149 и с индикатором MT-16S2D. А на lpc2106 индикатор ведет себя так: после включения на индикаторе высвечивается верхняя строка полностью (просто высвечены знакоместа сколько-то на сколько-то пикселей). И все. Перенос вызова подпрограмм в цикл (т.е. постоянное обновление на индикаторе символов в разных местах) результата не дал.
Ой... ассемблер :-(
Ну симптомы явно указывают на неправильную инициализацию. Глянул инициализацию:
Код
    ldr r0,=ioset
    ldr    r2,=D45        // установка D4, D5
    str r2,[r0]

    stmfd    sp!,{r14}
    mov    r2,#0x200        // 43,4 мкс
    bl    pause
    ldmfd    sp!,{r14}

    ldr r0,=ioclr
    ldr    r2,=LCD_IOALL
    str r2,[r0]
Вижу выставление D4, D5, задержку и сброс всех ножек. Не вижу где здесь выставляется E. Вы пробоваали на симуляторе или в железе пошагово проходить и смотреть что ноги выставляются именно так как надо? После команд =D45 задержки есть, после остальных команд инициализации задержек нет. Индикатор не будет успевать.
Задержки 43 мкс при инициализации маловаты. Я делаю (взял в даташите, с тех пор кочуют из проекта в проект): перед началом инициализации 200мс, после первой и второй команд (0x03) по 50мс и после 0x02 200мс. Далее все задержки около 40 мкс.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Andrew2000
сообщение Jul 19 2006, 14:13
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



Цитата(Сергей Борщ @ Jul 19 2006, 14:26) *
Я делаю (взял в даташите, с тех пор кочуют из проекта в проект): перед началом инициализации 200мс, после первой и второй команд (0x03) по 50мс и после 0x02 200мс. Далее все задержки около 40 мкс.

Я тоже такую информацию с какого-то ксерокса в 2000г выудил (другой документации по HD44780 тогда не было).
Но потом обнаружил, что, например, VFD от Futaba и Noritake (по функционалу полностью идентичные HD44780) вообще такой инициализации при включении не требуют - им тока надо дать "Display On".
А на указанной LCD и Powertip кто-нить проверял - инициализация (ну, кроме, есс-но перевода в 4-bit режим) нужна или так работают ?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 23:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.04504 секунд с 7
ELECTRONIX ©2004-2016