Цитата(: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 мкс.