:OveR: 0 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Господа, киньте, пожалуйста, примером на lpc2106 (на C или ASM) инициализации и работы с индикатором Индикатор двухстрочный (типа мэлтовского MT16S2D), режим работы - 4-х битный. Если что: overthrash (a) mail . ru Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба .. киньте, пожалуйста, примером на lpc2106 (на C или ASM) инициализации и работы с индикатором Пожалуйста, не сочтите за труд воспользоваться поиском. Даже на данном форуме Вы найдете не менее дюжины примеров подходящих под категорию просимого. Другое дело, что все просмотренные в свое время мной представляют достаточно печальное зрелище :-(, но в определенных условиях с определенными ограничениями очевидно работоспособны. Если Вам нужно не для "абы заработало", то рекомендую: - изучить документацию на контроллер/контроллеры; - просмотреть найденные исходники; - попробовать написать свое в меру своего разумения и своих потребностей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
:OveR: 0 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Пожалуйста, не сочтите за труд воспользоваться поиском. Даже на данном форуме Вы найдете не менее дюжины примеров подходящих под категорию просимого. Другое дело, что все просмотренные в свое время мной представляют достаточно печальное зрелище :-(, но в определенных условиях с определенными ограничениями очевидно работоспособны. Если Вам нужно не для "абы заработало", то рекомендую: - изучить документацию на контроллер/контроллеры; - просмотреть найденные исходники; - попробовать написать свое в меру своего разумения и своих потребностей. На данном форуме не нашел (может плохо искал, но комбинаций слов и поисковых фраз было больше двух десятков). Если Вы укажете поисковые фразы/слова, по которым найдутся примеры - буду премного благодарен. Далее. Описание индикатора и его контроллера посмотрел. Алгоритм инициализации есть (он и был до обращения сюда). К сообщению прикрепил исходник. Код неоптимизирован, для простоты расписано как можно подробнее и проще. Буду благодарен, если кто-нибудь укажет в коде на ошибки (может вообще надо по-другому). =) P.S. А такой же алгоритм (написанный в другом ассемблере, ессно) работает на msp430f149 и с индикатором MT-16S2D. А на lpc2106 индикатор ведет себя так: после включения на индикаторе высвечивается верхняя строка полностью (просто высвечены знакоместа сколько-то на сколько-то пикселей). И все. Перенос вызова подпрограмм в цикл (т.е. постоянное обновление на индикаторе символов в разных местах) результата не дал. main.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Если Вы укажете поисковые фразы/слова, по которым найдутся примеры - буду премного благодарен. "LCD" - все очень просто. Кривой под LPC2016 конкретно :-)))) можете посмотреть на olimex.com в образчиках LPC-MT-2106 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба 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 мкс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
:OveR: 0 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Если Вы укажете поисковые фразы/слова, по которым найдутся примеры - буду премного благодарен. "LCD" - все очень просто. Кривой под LPC2016 конкретно :-)))) можете посмотреть на olimex.com в образчиках LPC-MT-2106 Спасибо, на олимексе.ком нарыл исходник на Си под IAR. Попробую переделать на ассемблере и под CrossWorks =) Вижу выставление D4, D5, задержку и сброс всех ножек. Не вижу где здесь выставляется E. Вы пробоваали на симуляторе или в железе пошагово проходить и смотреть что ноги выставляются именно так как надо? После команд =D45 задержки есть, после остальных команд инициализации задержек нет. Индикатор не будет успевать. Задержки 43 мкс при инициализации маловаты. Я делаю (взял в даташите, с тех пор кочуют из проекта в проект): перед началом инициализации 200мс, после первой и второй команд (0x03) по 50мс и после 0x02 200мс. Далее все задержки около 40 мкс. Сигналы на всех ножках есть, устанавливаются и сбрасываются как надо. Смотрел как на процессоре, так и непосредственно на индикаторной плате. Про задержки понял, увеличу и воткну, где их не хватает А по поводу E.. В описании на индикатор не нашел упоминания о том, как себя должна вести ножка E (RW, RS и ноги данных). :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Если не лень разбираться, то вот мой. На 60 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Там кстати ремарки не совпадают с реальной схемой. Это не моя библиотека. Я её под себя переделал. Её вроде бы rezident писал для MSP. А так как я ремарки обычно не пишу, то там остались старые. Но работает вроде идеально. Нужно только чтобы таймер 0 работал. По нему интервалы отсчитываются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Забыл ашник добавить. Никто главное не сказал и не завозмущался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrew2000 0 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Я делаю (взял в даташите, с тех пор кочуют из проекта в проект): перед началом инициализации 200мс, после первой и второй команд (0x03) по 50мс и после 0x02 200мс. Далее все задержки около 40 мкс. Я тоже такую информацию с какого-то ксерокса в 2000г выудил (другой документации по HD44780 тогда не было). Но потом обнаружил, что, например, VFD от Futaba и Noritake (по функционалу полностью идентичные HD44780) вообще такой инициализации при включении не требуют - им тока надо дать "Display On". А на указанной LCD и Powertip кто-нить проверял - инициализация (ну, кроме, есс-но перевода в 4-bit режим) нужна или так работают ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Сигналы на всех ножках есть, устанавливаются и сбрасываются как надо. Смотрел как на процессоре, так и непосредственно на индикаторной плате. Тогда исходник не весь, я не вижу команд дерганья строба (E). Если он не дергается, значит не на всех ножках сигналы есть. А по поводу E.. В описании на индикатор не нашел упоминания о том, как себя должна вести ножка E (RW, RS и ноги данных). :(Сорри, а как же тогда работал упоминавшийся исходник на MSP430F149? Как это не нашли в описании? А диаграмы смотрели? На E нужно подавать импульс на каждую команду. Как же иначе индикатор поймет, что именно эта комбинация и есть данные индикатору а не кому-то другому или мусор на шине? А на указанной LCD и Powertip кто-нить проверял - инициализация (ну, кроме, есс-но перевода в 4-bit режим) нужна или так работают ?Суда по тому, что при подаче питания он высвечивает верхнюю полосу (как и Powertip и вообще все которые попадались алфавитно-цифровые ЖКИ) инициализация все же требуется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Ну ты, GetSmart, даешь! Хоть бы причесал мои черновики прежде, чем выкладывать на публику. :rolleyes: Вроде этот исходник вполне рабочий. По крайней мере проверялся на MSP430F149 с WH1602B (WinStar) и VC16X2A (WizeTip). P.S. еще вспомнил, что проверял его на 4-х строчном PC1604A от PowerTip, правда только на две строки. Тоже работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 19 июля, 2006 Опубликовано 19 июля, 2006 · Жалоба Спасибо, на олимексе.ком нарыл исходник на Си под IAR. Попробую переделать на ассемблере и под CrossWorks =) 1. Он, как я уже писал, совсем не образец для подражания. 2. Писать на ASM для АRMов работу с безмерно тормозными вещами типа помянутого LCD, неумно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться