Страница 330 из 400

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

Добавлено: Вт мар 27, 2018 15:01:56
sirha
Не понятно какой контроллер, не известен код программы
Извините что не сказал- контроллер atmega8.
А как он вообще устанавливается?,везде пишут что буфер приемника переполнен?,как вообще это досканально понять?
к примеру я отправил данные и чатаю их:

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

read:
sbis UCSRA,RXC
rjmp read

in R17,UDR
получается флаг установиться если во время чтения придет еще байт в UDR что ли?
Я пока в железе устройство не собирал решил сделать приборчег который показывает процент ошибки передачи данных по UART на модулях hc-12,пока смотрю в симуляции,возможно протеус логает не пойму,если я подключаю виртуальный терминал в симуляции и сам передаю данные через него куча раз то устанавливается флаг DOR типо что переполнен UDR приёмника я как понял,но почему то после установки DOR сразу все виснит в :

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

read:
sbis UCSRA,RXC
rjmp read
и данные больше не читаются RXC=0 всегда

:dont_know: ,а как вообще сделать так чтобы флаг DOR =0 после того как он станет =1 ?, так что ли???:

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

in R17,UDR
,в симуляции так не выходит.

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

Добавлено: Вт мар 27, 2018 16:01:37
Jetetex
Может здесь найдете что-то полезное:

http://radioparty.ru/prog-avr/program-c ... -usart-avr

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

Добавлено: Пт мар 30, 2018 22:03:28
Jetetex
Народ, что то не пойму - или лыжи не едут, или я. На тини 2313 не могу вывести сигнал тактирования на порт д2. Порт сконфигурирован на выход, фьюз установлен, а на PD2 тихо. :dont_know:

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

Добавлено: Пт мар 30, 2018 23:15:32
Demiurg
[uquote="Jetetex",url="/forum/viewtopic.php?p=3342944#p3342944"]Народ, что то не пойму - или лыжи не едут, или я. На тини 2313 не могу вывести сигнал тактирования на порт д2. Порт сконфигурирован на выход, фьюз установлен, а на PD2 тихо. :dont_know:[/uquote]
Эта фича делается фьюзами, а не программно. Нужно ли настраивать порт на выход не помню. Пробуйте так и так. Давно было, у меня обратная ситуация была, устройство не работало, так как пин фьюзами был настроен как выход кварцевого генератора.

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

Добавлено: Сб мар 31, 2018 04:21:37
akl
[uquote="Jetetex",url="/forum/viewtopic.php?p=3342944#p3342944"]... На тини 2313 не могу вывести сигнал тактирования на порт д2. Порт сконфигурирован на выход, фьюз установлен, а на PD2 тихо.[/uquote]Если запрограммировать FUSE-бит CKOUT, всё, на лапе PD2/CKOUT/XCK/INT0 будет тактовая с учётом CKDIV8.

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

Добавлено: Сб мар 31, 2018 16:14:38
Jetetex
значит протеус тупит

Добавлено after 7 hours 12 minutes 20 seconds:
Народ, помогите. Кто может сгенерировать ассемблеровския листинг вот из этого http://radiokot.ru/circuit/digital/home/239/03.zip проекта, а то скачал студию, а разобратся не могу.

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

Добавлено: Сб мар 31, 2018 19:23:22
BOB51
Это СИшный проект, а не ассемблерный.
8)

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

Добавлено: Сб мар 31, 2018 19:52:17
Jetetex
я в курсе. Именно поэтому прошу асемблерный листинг после компиляции СИшного кода в студии. Если кто работает в студии это будет быстрее чем мне сейчас в ней ковырятся + к тому в протеусе нету файлов которые указаны в .include, и он на них ругается, а без них листинг мягко говоря не полный

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

Добавлено: Пн апр 23, 2018 20:52:05
dumbass
Всем доброго времени суток!
Задача: помигать св-диодом с частотой 1Гц. МК - тини2313, частота 500кГц (что бы с коеф. дел 1024 получить частоту мигания 1Гц). Св-диод управляется кнопкой (переключение по фронту, без внешних прерываний). В программе обязательно задействовать таймер (для практического закрепления изученного материала). Таймер Т0 изучил все, кроме ШИМа.
Я уже когда то задавал подобный вопрос здесь (313 страница), из предложенных вариантов выбрал такой (какой больше смог понять :) ):
в главной программе я опрашиваю сост. кнопки. Если кнопка нажата, то... то что делать дальше не понимаю. Не понимаю как построить свою программу и где какой блок должен размещаться.
Я имею ввиду, к примеру, вот где нужно разместить всю инициализацию связанную с таймером (все, включая уст. флага внеш. прерыв. и уст. необходимого коеф. дел.)?
1) до входа в осн. цикл (тогда где то я должен буду обнулить таймер?)
2) вкл. внеш. прерыв. до осн. цикла, а в подпрограмме вкл св-диод и задать коеф. деления
3) или нужно связать свою судьбу с прерыванием в канале А или В?
в общем, мне не хватает понимая где что размещать и как построить програму так, что бы она состояла из блоков, как конструктор (как я понимаю, ведь к этому же необходимо стремится, создавая проект на ассемблере)
Возможно у кого то есть пример правильного/профессионального построения программы? (желательно не сложную, сложности в "мигание двумя св-диодами" будет достаточно пока :) )
надеюсь, никого не запутал. Спасибо за ответы!

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

Добавлено: Вт апр 24, 2018 03:42:36
Demiurg
Я писал неоднократно. Книги: Вольфганг Трамперт "AVR-RISC микроконтроллеры фирмы ATMEL". Джон Мортон "Микроконтроллеры AVR. Вводный курс". Там примеры программ. И не только.

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

Добавлено: Вт апр 24, 2018 03:53:14
Ivanoff-iv
начальные настройки таймера (и не только) делаются (т.к. они один раз делаются) до главного цикла, там указываешь и режим работы и делители и разрешаешь прерывания.
для более точных интервалов обычно используют режим СТС - в OCR0A заносишь значение и счетчик, досчитав до него сам обнуляется, для запуска обработчиков используй прерывания по совпадению (по переполнению работать не будет, т.к. переполнения не происходит).

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

Добавлено: Вт апр 24, 2018 19:12:44
Feruz
Подскажите кто знаком с БОД
В тини13а есть функция программного отключения БОД. Пытаюсь ее активировать в IDLE режиме вот таким образом:

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

	ldi r_temp, (1<<SE)|(0<<SM1)|(0<<SM0)
	out MCUCR, r_temp

	ldi r_temp, (1<<BPDS)|(1<<BPDSE)
	out BODCR, r_temp

	ldi r_temp, (1<<BPDS)|(0<<BPDSE)
	out BODCR, r_temp

	sleep
Естественно БОД включен во фьюзах, но по току потребления вижу что при переходе в IDLE БОД не отключается (должно быть снижение на 15-17 мкА)
Может программное отключение БОД возможно только в Power Down режиме? Даташит как-то расплывчато об этом говорит, остается ощущение что не только в Power Down

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

Добавлено: Вт апр 24, 2018 19:58:46
ARV
По-моему, в даташите конкретно сказано, в каком режиме BOD отключается:
Изображение

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

Добавлено: Вт апр 24, 2018 20:04:14
Demiurg
IDLE-режим по большому счету бесполезен. Снижение тока потребления минимально, так как работает практически все. Если и есть польза, то только в единственном случае, минимизировать собственные шумы при аналого-цифровом преобразовании. Так как в этом режиме выполнение программы остановлено, нет переключений сигналов в мк и на целевой плате.

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

Добавлено: Вт апр 24, 2018 20:38:17
Feruz
И сам бы отказался от IDLE, да вот только прерывание от таймера необходимо, а как известно таймер из Power Down не пробуждает.
С другой стороны в аппноуте "Innovative Techniques for Extremely Low Power Consumption with 8-bit Microcontrollers" перечислены и другие режимы кроме Power Down

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

Добавлено: Ср апр 25, 2018 06:07:16
akl
Не понятно, зачем включать BOD, стремясь при этом снизить потребление.

По "бесполезности" режима IDLE. Картинка показывает снижение в ~4 раза. Если ещё отключить аналоговый компаратор, лапы перевести на вывод, потребление будет ещё ниже.
СпойлерИзображение

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

Добавлено: Ср апр 25, 2018 07:29:05
Feruz
БОД используется для обеспечения сохранности ЕЕПРОМ. По логике вещей отключить его программно в ИДЛЕ должно быть возможно, потому что в этом режиме отключается тактирование флэш и цпу, а значит и выполнение неверных команд, которые могут привести к порче памяти, невозможно

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

Добавлено: Ср апр 25, 2018 14:00:06
akl
Понятно. Нет под рукой tiny13a, можно было бы похулиганить.

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

	LDI	R20,1<<SE|1<<SM1
	LDI	R21,1<<SE

	OUT	MCUCR,R20
	LDI	R22,1<<BPDS|1<<BPDSE
	LDI	R23,1<<BPDS
	OUT	BODCR,R22
	OUT	MCUCR,R21
	OUT	BODCR,R23
;********************
WAIT:
	SLEEP
	RJMP	WAIT

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

Добавлено: Ср апр 25, 2018 18:20:20
Feruz
Нет, не мурчит(

Я имею ввиду для IDLE режима. Для Power Down работает.

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

Добавлено: Чт апр 26, 2018 10:27:07
ARV
Feruz писал(а):Нет, не мурчит
а разве была надежда? производитель черным по английскому вам написал - только POWER DOWN. какие еще надежды, откуда?!