Ассемблер (ASM) для AVR в вопросах и ответах
Re: Ассемблер (ASM) для AVR в вопросах и ответах
pyzhman, ну вот зачем вы так меня поддергиваете........ я уже догадывался что сморозил ерунду. 
Tell Me The Truth
- Реклама
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Только учитываем, что при сбросе вся память херится к чертовой матери.
Откуда такая информация? Только при отключении питания.
если в атмеге 8 я хочу повесить кнопку на вывод ресет то для этого мне уже не обязательно с помощью фьюзов данную ногу конфигурировать на ввод, а потом с помощью паралельного прогера все это исправлять......, теперь мне просто надо следить за 1 битом регистра MCUCSR и при его установке выполнять некие события в проге.
Нет. Просто делаете переменную в памяти, которая изменяет своё значение после сброса, её и анализируете.
Способ подходит для простых применений: мигалок всяких, гирлянд и т.д, т.к. при включении питания её состояние будет не определено (то есть может быть любым).
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Во наговорили
. Насколько я знаю в некоторых Мк есть специальные биты в определенном регистре по которым можно узнать по какой причине произошел сброс. Далее нужно просто отделить мух от котлет и определить нужно ли инициализировать переменные(в случае первого включения), либо просто обработать нажатие на кнопку или собаку.
Единственное условие- всегда после считывания этих битов нужно сразу их сбросить так как они устанавливаются аппаратно и сохраняются вплоть до выключения Мк.
Единственное условие- всегда после считывания этих битов нужно сразу их сбросить так как они устанавливаются аппаратно и сохраняются вплоть до выключения Мк.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
2FreshMan: никаких поддергиваний, всё взаправду.
Согласен.
ploop писал(а):Только при отключении питания.
Согласен.
Docendo discimus
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ploop писал(а):Только при отключении питания.
а откуда такая информация ?
Tell Me The Truth
- Реклама
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Мля, пару страниц назад разговаривали на эту тему. Ты или впитывай, или сам разбирайся.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
да тот разговор я помню....., просто хотелось узнать нет ли у атмела какого либо обще-официального документа, кроме даташита конечно, где описывается общий принцип работы их МК.
Tell Me The Truth
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Есть. На сайте. Всё по архитектуре расписано.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
если вас не затруднит, ткните носом на данный документ, пожалуйста
Tell Me The Truth
Re: Ассемблер (ASM) для AVR в вопросах и ответах
дорогие братья по разуму, а не скрыта ли сдесь ошибка ?
может там надо reti вместо ret ?
http://radiokot.ru/start/mcu_fpga/avr/15/

может там надо reti вместо ret ?
http://radiokot.ru/start/mcu_fpga/avr/15/
Tell Me The Truth
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Ошибкой как таковой не является. Просто заткнуться все прерывания. Если ВДРУГ программа скакнет туда.
Docendo discimus
Re: Ассемблер (ASM) для AVR в вопросах и ответах
но ведь для выхода из прерывания юзается RETI
али я неправ ?
али я неправ ?
Tell Me The Truth
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Если не хочется открывать прерывания, то надо пользоваться ret. reti делается всё то же самое, что и ret, только еще разрешает глобальные прерывания, т.е. взводит флаг I.
Docendo discimus
Re: Ассемблер (ASM) для AVR в вопросах и ответах
но ведь ret используется при выходе из подпрограммы( ф-ции), а мы говорим о прерываниях......, ничего не пойму...., каламбур какой-то 

Tell Me The Truth
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Да никакого каламбура.
Если в подпрограмме понадобилось выключить прерывание, а по выходе включить, можно использовать такой код:
А можно такой:
В последнем случае экономим одну команду.
Так же и внутри прерывания можно принудительно включить прерывания, и выходить из него через ret. Однако вложенные прерывания использовать не советую.
Так же из любого участка кода через ret или reti можно выйти совсем не туда, откуда пришли, а совсем в другое место, предварительно заменив на стеке адрес возврата
Если в подпрограмме понадобилось выключить прерывание, а по выходе включить, можно использовать такой код:
Код: Выделить всё
my_func:
cli() ; отключили прерывания
....
тут мой код
....
sei() ;включили
ret ;выходимА можно такой:
Код: Выделить всё
my_func:
cli() ; отключили прерывания
....
тут мой код
....
reti ; Включили и выходимВ последнем случае экономим одну команду.
Так же и внутри прерывания можно принудительно включить прерывания, и выходить из него через ret. Однако вложенные прерывания использовать не советую.
Так же из любого участка кода через ret или reti можно выйти совсем не туда, откуда пришли, а совсем в другое место, предварительно заменив на стеке адрес возврата
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ploop писал(а):В последнем случае экономим одну команду.
зачем тогда вообще придумывали ret ?
или может быть случай когда при выходе из подпрограммы нам не надо включать прерывания ?
хотя я такого не встречал....., обычно при входе в подпрограмму мы запрещаем прерывания
Tell Me The Truth
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Случаи всякие бывают.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
- Engineer_Keen
- Друг Кота
- Сообщения: 3870
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Смотря какие, от протеуса там DSN, PWI и DBK, от AVR-студии APS, AWS, avrbuild.bat, остальные - файлы с исходным кодом на асме.


