она у меня ещё и кривая,эта прога,сама по себе Start: sbic PinB , 0 ldi temp,0b00000001 sbis PinB , 0 ldi temp,0b11110001 out PortB, temp rcall Delay rjmp Start
так гораздо изящнее,без всяких LedOff . поэтому мне и нравится ассемблер-интересно ковыряться на досуге)+ с ним лучше понимаешь как оно работает.
2 Duhas: Джон Мортон "Микроконтроллеры AVR, вводный курс" где-то у нас на форуме в библиотеке, по-моему, должна быть ссылка. 2 Rolex ИМХО: асм конечно хорошо, но до поры до времени, всё-таки языки высокого уровня намного упрощают составление сложных и витиеватых программ и чтение чужих программ (к примеру) на си в n раз выигрывают перед асм, а вот перейти после асма например на си, мне настолько тяжело, что даже не описАть, и процесс этот так сильно затянулся - ужос!... Хотя, это, скорее всего, индивидуальная особенность
2 Duhas: там в некоторых примерах программ имеются ошибки, порой незначительные, типо опИски (вместо ldi написано kdi или вместо ld написано lc), а есть и более сильные (строчка пропущена или функция не из этого МК). Уж не знаю чья это заслуга издателя или самого Мортона 2 Rolex: последний вариант с sbis и sbic в одном месте ИМХО прохиливает только в данном случае. В остальных случаях, я бы рекомендовал всё же так:
Start: sbis pinX,N ; если на ноге низкий уровень, кнопка нажата rjmp A ; идем в подпрограмму, где пишем что нам надо делать при нажатой кнопке rjmp next ; а иначе идем в следующую подпрограмму, нет смысла здесь же вводить sbic, потому что это и есть ИНАЧЕ чем sbis А: ;а здесь можно уже расписать используя любые операции
Поставил на диоды резисторы 1 кОм,как советовал ALHIMIK , ноги правда оставил прежними. Попробовал отпаять кнопку и залить вот такую программу .
Init: ldi temp,0b11111111 ; все выходы,Я ЭТУ ДУРУ, PB0, даже не использую как вход!!!! out DDRB, temp
ldi temp,0b00000000 ; начальное положение диоды погашены out PortB, temp Start:
ldi temp,0b11110000 out PortB, temp rcall Delay ldi temp,0b00000000 out PortB, temp rcall Delay rjmp Start
просто помигать диодами Опять ругается при прошивке:
"there seems to be a short circuit on the isp connector . The MOSI RESET and SCK lines appear to be short circuited" вроде ругается на короткое замыкание,но я все контакты прозванивал-не закорочены они друг на друга.
далее сразу ещё одна ошибка "a problem occured when executing the command.Make sure that you are using the correct programming method." ну я уверен что метод- ISP и частота выбрана верно относительно резонатора.
Пришлось опять закорачивать ногу на землю,после прошивки программа работает нормально только если снова закорачивать ,ито отнюдь не всегда.В противном случае диоды чуть светятся и еле различимо мигают по алгоритму.
Добавлено спустя 28 минут 49 секунд: Если полностью стереть программу с мк , то необходимость зажимать кнопку для повторной очистки,считывания показания фьюзов- отпадает.светодиоды при этом опять полугорят-замерил на них напряжение-около 2 вольт.стоит нажать- они гаснут.программы в мк никакой при этом нет.Все фьюзы ,кроме SPI Enable сброшены.Что же за напасть такая.попробую повесить их на другие ножки.
2 Rolex: Предлагаю: 1. писать комментарии и осмысливать что делаем; 2. асм, чаще всего, предполагает (это лично мое открытие ) ставить себя на место процессора и попытаться выполнить то, что написано в (правильных) комментах; 3. очень рекомендую (НАСТОЙЧИВО!) использовать Протеус, потому что там и компиляция асм-а и ваще идеальная среда для ассемблера и симуляции 4. внимательно посмотреть у Мортона шаблон программы (в первых десятках страниц). Я, конечно, могу написать готовую программу без ошибок и работающую так как надо, но считаю это вредно и поэтому готов помочь, но без решения задач Прочитал Ваше добавление и добавляю: разберитесь с питанием! это не так уж сложно. Ну подключите 4-ре батарейки (акка) по 1,2в и отлаживайте прогу. А питать хз чем - и получим хз что ЗЫ: с фьюзами, не имея восстановительных девайсов - рекомендую не играться - ибо они(фьюзы) не панацея
Решил все проблемы переключив диоды с ножек MISO MOSI SCK на свободные PB, к ним наверно нужен особый подход.Спасибо всем кто обратил на них моё внимание.
1)я по 10 раз переделывал код,не всегда меняя за за этим комментарии-не углядел 2)Ставлю себя на место битов и байтов,в том что пока пишу большего не требуется) 3)Обязательно,для чего нить более сложного 4)Шаблоны Мортона очень даже использую ... 5)Дело все таки не в программе было. Протеус бы "указал" мне на такие особенности MISO MOSI SCK ?
Я рекомендую ATmega8 как более универсальный и недорогой - всего 48 рублей - с перспективой замены на 88 168 328 в том же корпусе в туже панельку вставиь можно.