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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

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

Сообщение sirha »

В передатчике вкл контроль четности и в приемнике,на осциллографе при передаче виден 9 бит контроля четности,но приемник видит постоянно PE=0 вне зависимости от передачи чисел 0x31 или 0x30,что не так?
байт передан,9 бит передан ,я так понял что приемник нужно настроить на 9 бит ?,как я это и сделал ,токо PE=0 всегда

Обьясните пожалуйста я к примеру установлю проверку на четность EVEN тоесть четное,тоесть к примеру если я буду передавать приемнику число 0b00000111 то флаг PE должен поставиться в 1 так как число не четное ,так ведь ?,почему этого не происходит((
Аватара пользователя
Серый_
Опытный кот
Сообщения: 708
Зарегистрирован: Пт ноя 30, 2007 14:40:44

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

Сообщение Серый_ »

Что мешает всё настроить одинаково? Скорость, битаж (8), стоп биты 1...2, остальное там чего...
P. s. пропустил мимо глаз, что протеус - ну тогда ни чему не удивлюсь. :)))
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

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

Сообщение sirha »

да пробовал одинаково,все равно PE=0,пытаюсь также флаг FE посмотреть когда срабатывает,тоже фигня какая то((,если долго тяну 0 стоп бит то все виснет,если не очень долго то все равно нету FE хоть убей,пробовал atmega16 все также,скачивал разные версии протеуса без разницы,ребят может кто поможет,работают ли эти флаги в протеусе?
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

http://radiokot.ru/forum/viewtopic.php? ... it=PROTEUS Может здесь спросить.
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

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

Сообщение sirha »

СПС,я уже разобраля флаги FE,PE действительно не работают в протеусе,решил посмотреть в окно ошибок proteus,там ошибки есть,а флаги не выставляются.
для atmega8
Есть две проверки на четность задаются регистрами UPM
EVEN-проверяем на четность
ODD-проверяем на нечетность

В передатчике как и в приемнике должно быть включено все одинаково,9 битную передачу отдельным регистром тут можно не включать,достаточно 8 битной ,я сначала в этом запутался.
(можно конечно и отдельно без флагов проверять бит четности,для этого нужно включить 9 битную передачу в приемнике с помощью регистров, а в передатчике задействовать регистры UPM,в приемнике смотреть 9 бит RX8,а дальше арифметически проверять принятые байты считая для них четное или нечетное число и сравнивать с 9 битом,но проще я думаю с флагами :) ).

Флаг PE проверяется так:

Сравнивается 9 бит передатчика тоесть как раз бит четности или нечетности с принятым байтом передатчика - PE выставляет приемник ,который вычисляет бит четности или не четности этого байта.
поэтому важно все настроить одинаково как у передатчика так и у приемника.

например выберем режим EVEN шлем число 0b00000011 соответственно бит четности равен 1, так как в числе две единицы, говорим да тоесть 1,если число 0b00000111 то бит четности равен 0,так как число нечетное то нет, это 0.
аналогично все и для ODD токо эта уже проверка на нечетность.
Аватара пользователя
Jetetex
Встал на лапы
Сообщения: 117
Зарегистрирован: Ср окт 15, 2014 12:45:46
Откуда: Анапа

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

Сообщение Jetetex »

Помогите профану. Нужно в ассемблере на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте), но не могу разобратся с командами ADD, ADC.
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

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

Сообщение dgrett »

Используйте ADIW
Я всё-всё узнAю и стану профессором.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15550
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Это конечно неплохо... НО только для диапазона 0-63...
при размещении слагаемых в регитсрах проблем особо нету

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

r16=1 ;0-255
r17=0 ;0-255
r18=cntl
r19=cnth
итогом
add cntl,r16
addc cnth,r17
Однако базовый алгоритм относительно АВРок (не имеющих команд сложения с непосредственными данными) при многобайтовом сложении с непосредственными данными (диапазон 1-127) потребует применения команд subi/sbci приемник, (-константа)
Иногда достаточно

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

Inc cntl
brne endp ; аналогия JNZ метка
inc cnth
endp:......
8)
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

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

Сообщение dgrett »

Так ведь ТС и хочет +1, каждый такт инкремент
Я всё-всё узнAю и стану профессором.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15550
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Это общая схема - без ограничения по разрядности и без использования парных регистров в примитивных целях.
Их и так не очень много "в свободном виде" - только индекс-указатели Z,X и Y да еще R24:R25.
Занимать их в программе просто под считалку тактов весьма нерационально.
8)
Кстати... для потактового счета лучше свободный аппаратный счетчик настроить.
:tea:
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

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

Сообщение dgrett »

[uquote="BOB51",url="/forum/viewtopic.php?p=3310796#p3310796"]Кстати... для потактового счета лучше свободный аппаратный счетчик настроить.
:tea:[/uquote]
Согласен, я так и делал бы
Я всё-всё узнAю и стану профессором.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15550
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Программные тоже не помешают, мало ли чего считать потребуется.
Тем более, что инкремент/декремент применимы КО ВСЕМ регистрам r0-r31.
8)
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Когда речь идёт об одном регистре то без проблем, а когда надо больше 255 считать тут уже возникают проблемы... INC(DEC) не выставляет флаг переноса(заёма) при переполнении!!! Вот такой вот нежданчик...
Аватара пользователя
Starichok51
Модератор
Сообщения: 19045
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

зато INC (DEC) выставляют флаг НУЛЯ!
и проверку на нуль делаем командой brne. ну, или breq...
выше BOB51 уже про это писал.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

[uquote="Jetetex",url="/forum/viewtopic.php?p=3310748#p3310748"]... на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте)...[/uquote]Программный, думаю, не получится.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15550
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Дословно да - не получится ибо на отработку приращения уйдет несколько МАШИННЫХ ТАКТОВ (а не один - на - приращение), а вот для подсчета каких - либо событий вполне сгодится.
8)
Аватара пользователя
Starichok51
Модератор
Сообщения: 19045
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

Jetetex писал(а):Нужно в ассемблере на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте)
для +1 вполне подойдет команда adiw. но она тратит 2 цикла.
и не правильно говорить про такт. это машинный ЦИКЛ. а уже цикл состоит из тактов. но в AVR мы тактов не видим, они от нас скрыты.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
Jetetex
Встал на лапы
Сообщения: 117
Зарегистрирован: Ср окт 15, 2014 12:45:46
Откуда: Анапа

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

Сообщение Jetetex »

Всем огромное спасибо за участие.
Пока читал - понял что немного не точно задал вопрос. (но ответ был все таки найден). Нужен счетчик событий в течении суток с диапазоном от 3сек до 2 минут, кол-во которых будет в любом случае более 256.
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Т.е. максимальная ёмкость счетчика будет 86400/3=28800, что вполне укладывается в два байта. Сгенерировать суточный интервал, внутри которого считать события. Ничего сложного. Другое дело когда нужно вести лог длительности каждого события! Было дело, решал подобную задачу. Пришлось ставить FRAM FM24V10.
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

[uquote="Jetetex",url="/forum/viewtopic.php?p=3310748#p3310748"]Помогите профану. Нужно в ассемблере на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте), но не могу разобратся с командами ADD, ADC.[/uquote]
Книги:
Вольфганг Трамперт. AVR-RISC микроконтроллеры фирмы ATMEL.
Джон Мортон. Микроконтроллеры AVR. Вводный курс.
1 - В этих книгах описаны архитектура AVR, система команд. Примеры проектов для практики.
2 - Прочитав эти книги вы сэкономите свое время и время участников. Вы экономите свое тем, что из книг получите азы и в следующий раз не будете тратить свое время на форумах, ожидая ответов на элементарные вопросы. Также вы экономите чужое время.
Ответить

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