Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение FreshMan »

pyzhman, ну вот зачем вы так меня поддергиваете........ я уже догадывался что сморозил ерунду. :oops:
Tell Me The Truth
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ploop »

Только учитываем, что при сбросе вся память херится к чертовой матери. :))

Откуда такая информация? Только при отключении питания.
если в атмеге 8 я хочу повесить кнопку на вывод ресет то для этого мне уже не обязательно с помощью фьюзов данную ногу конфигурировать на ввод, а потом с помощью паралельного прогера все это исправлять......, теперь мне просто надо следить за 1 битом регистра MCUCSR и при его установке выполнять некие события в проге.

Нет. Просто делаете переменную в памяти, которая изменяет своё значение после сброса, её и анализируете.
Способ подходит для простых применений: мигалок всяких, гирлянд и т.д, т.к. при включении питания её состояние будет не определено (то есть может быть любым).
Реклама
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение vitalik_1984 »

Во наговорили :)) . Насколько я знаю в некоторых Мк есть специальные биты в определенном регистре по которым можно узнать по какой причине произошел сброс. Далее нужно просто отделить мух от котлет и определить нужно ли инициализировать переменные(в случае первого включения), либо просто обработать нажатие на кнопку или собаку.

Единственное условие- всегда после считывания этих битов нужно сразу их сбросить так как они устанавливаются аппаратно и сохраняются вплоть до выключения Мк.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение pyzhman »

2FreshMan: никаких поддергиваний, всё взаправду.
ploop писал(а):Только при отключении питания.

Согласен.
Docendo discimus
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение FreshMan »

ploop писал(а):Только при отключении питания.

а откуда такая информация ?
Tell Me The Truth
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ploop »

Мля, пару страниц назад разговаривали на эту тему. Ты или впитывай, или сам разбирайся.
Реклама
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение FreshMan »

да тот разговор я помню....., просто хотелось узнать нет ли у атмела какого либо обще-официального документа, кроме даташита конечно, где описывается общий принцип работы их МК.
Tell Me The Truth
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ploop »

Есть. На сайте. Всё по архитектуре расписано.
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение FreshMan »

если вас не затруднит, ткните носом на данный документ, пожалуйста
Tell Me The Truth
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение FreshMan »

дорогие братья по разуму, а не скрыта ли сдесь ошибка ?
может там надо reti вместо ret ?
http://radiokot.ru/start/mcu_fpga/avr/15/
Изображение
Tell Me The Truth
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение pyzhman »

Ошибкой как таковой не является. Просто заткнуться все прерывания. Если ВДРУГ программа скакнет туда.
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение FreshMan »

но ведь для выхода из прерывания юзается RETI
али я неправ ?
Tell Me The Truth
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение pyzhman »

Если не хочется открывать прерывания, то надо пользоваться ret. reti делается всё то же самое, что и ret, только еще разрешает глобальные прерывания, т.е. взводит флаг I.
Docendo discimus
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение FreshMan »

но ведь ret используется при выходе из подпрограммы( ф-ции), а мы говорим о прерываниях......, ничего не пойму...., каламбур какой-то :dont_know:
Tell Me The Truth
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ploop »

Да никакого каламбура.
Если в подпрограмме понадобилось выключить прерывание, а по выходе включить, можно использовать такой код:

Код: Выделить всё

my_func:
cli() ; отключили прерывания
....
тут мой код
....
sei() ;включили
ret   ;выходим

А можно такой:

Код: Выделить всё

my_func:
cli() ; отключили прерывания
....
тут мой код
....
reti ; Включили и выходим

В последнем случае экономим одну команду.
Так же и внутри прерывания можно принудительно включить прерывания, и выходить из него через ret. Однако вложенные прерывания использовать не советую.

Так же из любого участка кода через ret или reti можно выйти совсем не туда, откуда пришли, а совсем в другое место, предварительно заменив на стеке адрес возврата :)
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение FreshMan »

ploop писал(а):В последнем случае экономим одну команду.

зачем тогда вообще придумывали ret ?
или может быть случай когда при выходе из подпрограммы нам не надо включать прерывания ?
хотя я такого не встречал....., обычно при входе в подпрограмму мы запрещаем прерывания
Tell Me The Truth
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ploop »

Случаи всякие бывают.
Аватара пользователя
Seriyvolk
Друг Кота
Сообщения: 4961
Зарегистрирован: Сб май 05, 2012 20:19:55
Откуда: Минск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Seriyvolk »

Привет, парни. В МК пока дуб, поэтому вопрос: какой программе принадлежат эти файлы?
Изображение
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение pyzhman »

Протеус?
Docendo discimus
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3870
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Engineer_Keen »

Смотря какие, от протеуса там DSN, PWI и DBK, от AVR-студии APS, AWS, avrbuild.bat, остальные - файлы с исходным кодом на асме.
Ответить

Вернуться в «AVR»