Помогите с Атмега8535 & И А Р EW for АВР V3.10A Имеется атмега 8535, работает на 16мгц 5В
среда разработки иар воркбенч 3.10а
Пишется программа на си, включающая в себя модули работы с ЖКИ (ПОВЕРТИП).Собственно функции для ЖКИ работают уже с 2003 года и почти не менялись.
Отладка нынешней программы велась на чипе, работающем от внутреннего генератора (ну недогляд+спешка поначалу, а потом к фузам просто не возвращался, отлаживал основное в программе - систему менюшек, рабочие последовательнсти импульсов и тд - не важно)
потом выставил фузы как надо (cksel=0xff, sut=0x03), остальное не трогал.
генератор заработал - 16 мгц, но перестало работать все остальное - а именно - все что должно выводиться на ЖКИ выводиться перестало, да и ЖКИ судя по виду строчек не инициализировался, разве что изредка, но строки не выводил (задержки для ЖКИ были естественно скорректированы под 16мгц)
в процессе выяснилось следующее.
часть 8 битной шины для ЖКИ идет с порта Д (PORTD.2 .. PORTD7), два младших бита с порта С (PORTC.6, PORTC.7). отключил все в программе, инициализируются только порты (DDRx регистры пишутся), и ЖКИ (запускается функция).
так вот, пока для порта С не выставишь DDRC=0xf0 (обязательно чтобы ноги PORTC.5, PORTC.4 были выходами), ноги 6 и 7 не управляются - стоит единица и все (причем не "чистая" 4.9В, а грязная 4.8~4.85). Отдельно выставить выходами только 5,6,7 ноги не пробовал, может только 5 влияет на соседей. А ноги 4 и 5 используются под кнопочки и на них висит по 1.
Сделал пока принудительное перенаправление порта С, но почему то помогло не сильно - инициализаци ЖКИ происходит не в 100% случаев, либо
выводятся строки не полностью, либо происходит пропуск символов в строке (!), либо из искажение (отправляешь П пишет чтото другое)
То есть, работа шины данных не корректна до сих пор.
Осциллограф на ногах порта С ничего не кажет (почти 5в стоит и все, когда ноги неуправляемы)
В чем проблема может быть? что я не так делаю?
Настройки в иаре
оптимизация - скорость максимум
Always do cross call optimization - не разрешен
конфигурировано все используя диалоги (не xcl)
ЗЫ: С контроллерами работаю несколько лет.
Некоторое время был перерыв - работал немножко на другом фронте, а сейчас решил подрабатывать программизмом. Оказалось, некоторые вещи забыл... :(
Но вроде же все проверил и не по одному разу.