Добрый день, уважаемые форумчане!
Столкнулся с тривиальной проблемой, которую не могу решить. Достав из закромов USBASP, решил поставить дрова на комп и протестировать его на своей Atmega16 - зашить простую мигалку. То есть на нулевой пин порта "А" повесил светодиод и заставил в цикле подавать 1 - задержка - 0. Проще программы не бывает наверное. Код ниже (ассемблер):
.include "m16def.inc"
.def temp = r16
.org 0
rjmp reset
Reset: // порт на вывод
ldi temp,255
out ddra,temp
out porta,temp
start: //цикл мигалки
clr temp
out porta,temp
rcall del
ser temp
out porta,temp
rcall del
rjmp start
del: //стандартная задержка
ldi r17,255
ldi r18,255
ldi r19,10
del2:
dec r17
brne del2
dec r18
brne del2
dec r19
brne del2
ret
Очевидно, что в коде ошибки нет. Протестировано в протеусе)
Но после прошивки МК, на нужной ноге не происходит смена состояний. То есть светодиод загорается и не мигает - просто горит. Поменял порты - тоже самое. С фьюзами вроде тоже все нормально - скрины прилагаю. Шил и хазамой, и дудкой. Использовал USBASP. Сигнатура читается , фьюзы меняются - все хорошо. Менял чип на аналогичный - все тоже самое. Схема соединения - думаю не стоит выкладывать)) Короче, я в тупике. Настолько дурацкая проблема, что я даже не знаю что думать. Может проблема в том, что в я не отсоединяю МК от USBASP ( MOSI, MISO, SCK, RESET) ?