Ассемблер (ASM) для AVR в вопросах и ответах
Re: Ассемблер (ASM) для AVR в вопросах и ответах
В передатчике вкл контроль четности и в приемнике,на осциллографе при передаче виден 9 бит контроля четности,но приемник видит постоянно PE=0 вне зависимости от передачи чисел 0x31 или 0x30,что не так?
байт передан,9 бит передан ,я так понял что приемник нужно настроить на 9 бит ?,как я это и сделал ,токо PE=0 всегда
Обьясните пожалуйста я к примеру установлю проверку на четность EVEN тоесть четное,тоесть к примеру если я буду передавать приемнику число 0b00000111 то флаг PE должен поставиться в 1 так как число не четное ,так ведь ?,почему этого не происходит((
байт передан,9 бит передан ,я так понял что приемник нужно настроить на 9 бит ?,как я это и сделал ,токо PE=0 всегда
Обьясните пожалуйста я к примеру установлю проверку на четность EVEN тоесть четное,тоесть к примеру если я буду передавать приемнику число 0b00000111 то флаг PE должен поставиться в 1 так как число не четное ,так ведь ?,почему этого не происходит((
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Что мешает всё настроить одинаково? Скорость, битаж (8), стоп биты 1...2, остальное там чего...
P. s. пропустил мимо глаз, что протеус - ну тогда ни чему не удивлюсь.
P. s. пропустил мимо глаз, что протеус - ну тогда ни чему не удивлюсь.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
да пробовал одинаково,все равно PE=0,пытаюсь также флаг FE посмотреть когда срабатывает,тоже фигня какая то((,если долго тяну 0 стоп бит то все виснет,если не очень долго то все равно нету FE хоть убей,пробовал atmega16 все также,скачивал разные версии протеуса без разницы,ребят может кто поможет,работают ли эти флаги в протеусе?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
СПС,я уже разобраля флаги 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 токо эта уже проверка на нечетность.
для atmega8
Есть две проверки на четность задаются регистрами UPM
EVEN-проверяем на четность
ODD-проверяем на нечетность
В передатчике как и в приемнике должно быть включено все одинаково,9 битную передачу отдельным регистром тут можно не включать,достаточно 8 битной ,я сначала в этом запутался.
(можно конечно и отдельно без флагов проверять бит четности,для этого нужно включить 9 битную передачу в приемнике с помощью регистров, а в передатчике задействовать регистры UPM,в приемнике смотреть 9 бит RX8,а дальше арифметически проверять принятые байты считая для них четное или нечетное число и сравнивать с 9 битом,но проще я думаю с флагами
Флаг PE проверяется так:
Сравнивается 9 бит передатчика тоесть как раз бит четности или нечетности с принятым байтом передатчика - PE выставляет приемник ,который вычисляет бит четности или не четности этого байта.
поэтому важно все настроить одинаково как у передатчика так и у приемника.
например выберем режим EVEN шлем число 0b00000011 соответственно бит четности равен 1, так как в числе две единицы, говорим да тоесть 1,если число 0b00000111 то бит четности равен 0,так как число нечетное то нет, это 0.
аналогично все и для ODD токо эта уже проверка на нечетность.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Помогите профану. Нужно в ассемблере на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте), но не могу разобратся с командами ADD, ADC.
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Используйте ADIW
Я всё-всё узнAю и стану профессором.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Это конечно неплохо... НО только для диапазона 0-63...
при размещении слагаемых в регитсрах проблем особо нету
Однако базовый алгоритм относительно АВРок (не имеющих команд сложения с непосредственными данными) при многобайтовом сложении с непосредственными данными (диапазон 1-127) потребует применения команд subi/sbci приемник, (-константа)
Иногда достаточно

при размещении слагаемых в регитсрах проблем особо нету
Код: Выделить всё
r16=1 ;0-255
r17=0 ;0-255
r18=cntl
r19=cnth
итогом
add cntl,r16
addc cnth,r17Иногда достаточно
Код: Выделить всё
Inc cntl
brne endp ; аналогия JNZ метка
inc cnth
endp:......Re: Ассемблер (ASM) для AVR в вопросах и ответах
Так ведь ТС и хочет +1, каждый такт инкремент
Я всё-всё узнAю и стану профессором.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Это общая схема - без ограничения по разрядности и без использования парных регистров в примитивных целях.
Их и так не очень много "в свободном виде" - только индекс-указатели Z,X и Y да еще R24:R25.
Занимать их в программе просто под считалку тактов весьма нерационально.
Кстати... для потактового счета лучше свободный аппаратный счетчик настроить.

Их и так не очень много "в свободном виде" - только индекс-указатели Z,X и Y да еще R24:R25.
Занимать их в программе просто под считалку тактов весьма нерационально.
Кстати... для потактового счета лучше свободный аппаратный счетчик настроить.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="BOB51",url="/forum/viewtopic.php?p=3310796#p3310796"]Кстати... для потактового счета лучше свободный аппаратный счетчик настроить.
[/uquote]
Согласен, я так и делал бы
Согласен, я так и делал бы
Я всё-всё узнAю и стану профессором.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Программные тоже не помешают, мало ли чего считать потребуется.
Тем более, что инкремент/декремент применимы КО ВСЕМ регистрам r0-r31.

Тем более, что инкремент/декремент применимы КО ВСЕМ регистрам r0-r31.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Когда речь идёт об одном регистре то без проблем, а когда надо больше 255 считать тут уже возникают проблемы... INC(DEC) не выставляет флаг переноса(заёма) при переполнении!!! Вот такой вот нежданчик...
- Starichok51
- Модератор
- Сообщения: 19045
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
зато INC (DEC) выставляют флаг НУЛЯ!
и проверку на нуль делаем командой brne. ну, или breq...
выше BOB51 уже про это писал.
и проверку на нуль делаем командой brne. ну, или breq...
выше BOB51 уже про это писал.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Jetetex",url="/forum/viewtopic.php?p=3310748#p3310748"]... на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте)...[/uquote]Программный, думаю, не получится.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Дословно да - не получится ибо на отработку приращения уйдет несколько МАШИННЫХ ТАКТОВ (а не один - на - приращение), а вот для подсчета каких - либо событий вполне сгодится.

- Starichok51
- Модератор
- Сообщения: 19045
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
для +1 вполне подойдет команда adiw. но она тратит 2 цикла.Jetetex писал(а):Нужно в ассемблере на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте)
и не правильно говорить про такт. это машинный ЦИКЛ. а уже цикл состоит из тактов. но в AVR мы тактов не видим, они от нас скрыты.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Всем огромное спасибо за участие.
Пока читал - понял что немного не точно задал вопрос. (но ответ был все таки найден). Нужен счетчик событий в течении суток с диапазоном от 3сек до 2 минут, кол-во которых будет в любом случае более 256.
Пока читал - понял что немного не точно задал вопрос. (но ответ был все таки найден). Нужен счетчик событий в течении суток с диапазоном от 3сек до 2 минут, кол-во которых будет в любом случае более 256.
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Т.е. максимальная ёмкость счетчика будет 86400/3=28800, что вполне укладывается в два байта. Сгенерировать суточный интервал, внутри которого считать события. Ничего сложного. Другое дело когда нужно вести лог длительности каждого события! Было дело, решал подобную задачу. Пришлось ставить FRAM FM24V10.
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Jetetex",url="/forum/viewtopic.php?p=3310748#p3310748"]Помогите профану. Нужно в ассемблере на Attiny 2313 сделать 16-ти разрядный счётчик (+1 в каждом такте), но не могу разобратся с командами ADD, ADC.[/uquote]
Книги:
Вольфганг Трамперт. AVR-RISC микроконтроллеры фирмы ATMEL.
Джон Мортон. Микроконтроллеры AVR. Вводный курс.
1 - В этих книгах описаны архитектура AVR, система команд. Примеры проектов для практики.
2 - Прочитав эти книги вы сэкономите свое время и время участников. Вы экономите свое тем, что из книг получите азы и в следующий раз не будете тратить свое время на форумах, ожидая ответов на элементарные вопросы. Также вы экономите чужое время.
Книги:
Вольфганг Трамперт. AVR-RISC микроконтроллеры фирмы ATMEL.
Джон Мортон. Микроконтроллеры AVR. Вводный курс.
1 - В этих книгах описаны архитектура AVR, система команд. Примеры проектов для практики.
2 - Прочитав эти книги вы сэкономите свое время и время участников. Вы экономите свое тем, что из книг получите азы и в следующий раз не будете тратить свое время на форумах, ожидая ответов на элементарные вопросы. Также вы экономите чужое время.