Q.AVRоменам. При переходе с IAR EWA 2.25b на любую из 2.26х, 2.27b, 2.28a символьный LCD работает неправильно - символы пляшут разные, попадаются и нужные, через некоторое время изображение сдвигается вправо... (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Михаил Ушаков 12 декабря 2003 г. 00:38

Остальная программа (обслуживание UARTa и клавиатурных кнопок) работает в любой версии компилятора, равно как
и другие проекты нормально работают на более свежих версиях (как говорится, - "не первый год замужем").
Контроллеры: mega103/128. Сейчас стоит 128-я. Но эту беду заметил уже давно, когда 103-я была жива. Кстати, Лошадь
от Ланконелли перестала читать/писать два 103-х контроллера. В STK500 - вроде оба пишутся... Но сейчас не об этом...
т.е. контроллеры - непричем.
Индикаторы: Ampire 1602A/ Sunlike?? 2002. Второй специально перепаял попробовать - ведет себя также.
Интерфейс: 4 бита. Все сигналы убираются в один порт В.
Инициализация: 0х30, 0х30, 0х30, 0х20, 0х28, 0х08, 0х01, 0х0С, 0х06, 0х02 с огромными задержками -
вначале сделал аж по 45мс. Увеличение задержек как и инициализация трижды подряд нечего не изменяет.
Удлинял с помощью NOP-ов операции запись/чтение, период - ничего. Оптимизация стоит LOW без галочек.
В отладчике программные задержки все работают, правда компиляция в новых версиях сокращает размер кода с
28К примерно до 27К.
Менял настройки проекта, увеличивал оба стека. Единственно влияет на картинку в Options of project -
ICCAVR/Code - Use ICCA90 1.x calling convention. Когда стоит галочка - при компиляции дает предупреждение,
на картинке заметно меньше неверных символов, но вранье все равно остается.
В отладочном варианте программы на индикаторе должно быть это, и только это (обновление через 0.5с):
0123456789012345
AB

после включения: через 0.5c: через 1c:
1 335 77 123 012 45 7890123 5 112 45c7890123 5
B.............. B.......3...... BB..............

Т.е. картинка постоянно меняется, даже там где ничего не должно меняться. Во второй строке вместо пустых
мест - произвольные одинаковые символы, похожие на мусор RAM. Удивительно, что этот мусор остается длительное время
даже при кратковременной "перезаписи" (см. цифра "3" через 0.5с).

Маловато мыслей, что можно сделать умного? Конечно, можно работать в IAR EWA 2.25b, но это, согласитесь,
уже неудобно.
Страна! Какие будут соображения? Заранее спасибо.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru