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

Обсуждаем контроллеры компании Atmel.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

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

Сообщение trofim2 »

1. Сохранить при входе в прерывание SREG и R17..R19 (при необходимости)
2. Очистить запрос на прерывание PCIF в GIFR
Реклама
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

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

Сообщение Голимый »

[uquote="trofim2",url="/forum/viewtopic.php?p=3324165#p3324165"]1. Сохранить при входе в прерывание SREG и R17..R19 (при необходимости)
2. Очистить запрос на прерывание PCIF в GIFR[/uquote]
Нет, не помогает
Трудное детство, стальные игрушки.
Реклама
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

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

Сообщение trofim2 »

[uquote="Голимый",url="/forum/viewtopic.php?p=3324191#p3324191"][uquote="trofim2",url="/forum/viewtopic.php?p=3324165#p3324165"]2. Очистить запрос на прерывание PCIF в GIFR[/uquote]
Нет, не помогает[/uquote]
При выходе из прерывания
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Ответили выше, удалил.
Последний раз редактировалось akl Вт мар 06, 2018 14:13:01, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

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

Сообщение Голимый »

[uquote="trofim2",url="/forum/viewtopic.php?p=3324200#p3324200"]При выходе из прерывания[/uquote]

Спасибо, все работает.
Простите, вы не могли бы объяснить почему есть разница в каком месте обработчика происходит сброс флага?
Трудное детство, стальные игрушки.
Реклама
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

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

Сообщение trofim2 »

При входе в прерывание флаг сбрасывается автоматически, но если прерывание длительное, возможно повторное взведение флага при наличии дребезга во время выполнение прерывания.
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

в комментарии перепутаны вход с выходом:
ldi temp, (1<<PB0)|(0<<PB3) ;PB0 - вход, PB3 - выход

int_isr: cli ;Запрет прерываний
когда МК находится в прерывании, ВСЕ прерывания и так уже запрещены. лишняя команда.

return: sei ;Разрешение прерываний
reti ;Выход
reti разрешает прерывания, дополнительно их разрешать не надо. опять лишняя команда.

не знаю, как ты считал задержку, но у меня там никак не получается 50 мс...

навскидку, не вижу причин, чтобы не работало.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

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

Сообщение Голимый »

[uquote="Starichok51",url="/forum/viewtopic.php?p=3324524#p3324524"]в комментарии перепутаны вход с выходом:
ldi temp, (1<<PB0)|(0<<PB3) ;PB0 - вход, PB3 - выход[/uquote]
Да, действительно ошибся.
когда МК находится в прерывании, ВСЕ прерывания и так уже запрещены. лишняя команда.
reti разрешает прерывания, дополнительно их разрешать не надо. опять лишняя команда.
Я слышал о таком, но оставил на всякий случай. Вдруг, чего-то не так услышал.
не знаю, как ты считал задержку, но у меня там никак не получается 50 мс...
Считала программа, я сам весьма туманно представляю как такое рассчитывается. Но скажем, секундные задержки вполне адекватны.
Трудное детство, стальные игрушки.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

какая программа считала задержку? и какую тактовую частоту ты задавал этой программе?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

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

Сообщение Голимый »

Частота 9 600 000, CKDIV8 выключен.
Программа вот эта
Вложения
avr_loop.PNG
(9.51 КБ) 574 скачивания
Трудное детство, стальные игрушки.
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Ассемблер сам справляется с такими примитивами. :)
Спойлер

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

;----- Подпрограмма задержки -----
.equ	Fo=9600000
;<442 сек
DELAY_ms:
	LDI	R17,BYTE4(50*Fo/1000/6-1)
	LDI	R18,BYTE3(50*Fo/1000/6-1)
	LDI	R19,BYTE2(50*Fo/1000/6-1)
	LDI	R20,BYTE1(50*Fo/1000/6-1)
LOOP_ms:
	SUBI	R20,BYTE1(1)
	SBCI	R19,BYTE2(1)
	SBCI	R18,BYTE3(1)
	SBCI	R17,BYTE4(1)
	BRNE	LOOP_ms
	RET 
;<1,7 сек
DELAY_us:
	LDI	R17,BYTE3(50*Fo/1000000/5-1)
	LDI	R18,BYTE2(50*Fo/1000000/5-1)
	LDI	R19,BYTE1(50*Fo/1000000/5-1)	;50us
LOOP_us:
	SUBI	R19,BYTE1(1)
	SBCI	R18,BYTE2(1)
	SBCI	R17,BYTE3(1)
	BRNE	LOOP_us
	RET 

;<6,8 мсек
DEL_us:
	LDI	R18,BYTE2(50*Fo/1000000/4-2)
	LDI	R19,BYTE1(50*Fo/1000000/4-2)	;50us
LP:
	SUBI	R19,BYTE1(1)
	SBCI	R18,BYTE2(1)
	BRNE	LP
	RET 
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Это не ассемблер справляется, а препроцессор.
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

СпойлерИзображение
На картинке не вижу где avrasm32, будучи запущенный из командной строки, обращается к препроцессору.
Вложения
avrasm32.PNG
(22.71 КБ) 444 скачивания
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

А зачем ему обращаться к препроцессору? Он же в него встроен.
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

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

Сообщение Голимый »

Вопрос, немножко не про контроллеры, но про ассемблер AVR.
Есть компилятор языка C, который доустанавливается к 4-й Студии, и вот в составе компилятора есть файл avr-as.exe. Я так понял это некий, не-атмеловский ассемблер AVR. Пытался его использовать - на любом, в т.ч нормальной файле сыпет ошибками, и компилять не хочет. Пытался искать про него - чего-то никакого руководства по нему нет. Может, кто знает, может есть такое?
Трудное детство, стальные игрушки.
city77
Открыл глаза
Сообщения: 53
Зарегистрирован: Чт дек 28, 2017 23:07:31

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

Сообщение city77 »

Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

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

Сообщение Голимый »

Понял... это не ассемблер.
А похож был.
Трудное детство, стальные игрушки.
Аватара пользователя
JackSmith
Потрогал лапой паяльник
Сообщения: 333
Зарегистрирован: Ср мар 09, 2016 08:07:41

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

Сообщение JackSmith »

[uquote="Голимый",url="/forum/viewtopic.php?p=3327847#p3327847"]и вот в составе компилятора есть файл avr-as.exe. Может, кто знает, может есть такое?[/uquote]
Это AVR GAS ассемблер. Его синтаксис не совместим с ассемблером студии. Работает как бэкенд GCC компилятора.
можете попробовать закинуть в него такой исходник:

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

.equ DDRB,  0x17
.equ PB0,   0x00
.equ PORTB, 0x18
.org 0x00                   
        sbi     DDRB, PB0 
        ldi     r25, 0x01
loop: 
        in      r24, PORTB
        eor     r24, r25 
        out     PORTB, r24
        ldi     r18, 0x3F 
        ldi     r19, 0x0D
        ldi     r24, 0x03
delay:
        subi    r18, 0x01
        sbci    r19, 0x00
        sbci    r24, 0x00
        brne    delay 
        rjmp    loop 
Аватара пользователя
Jetetex
Встал на лапы
Сообщения: 117
Зарегистрирован: Ср окт 15, 2014 12:45:46
Откуда: Анапа

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

Сообщение Jetetex »

Доброго времени суток всем форумчанам. Возникла идея устройства на тини 2313 для управления светодиодной матрицей 32х32. Всем она подошла, кроме обьема памяти. Решил вынести масивы данных для матрицы на внешний носитель. Шаря по просторам тырнета, нашол уйму статей по подключению сд карты к МК, но все примеры в статьях написаны на сях. :shock:

Из вышесказанного вытекает пара вопросов:

Мож у кого-то завялялся кусок кода по инициализации и работе с картой? (для наглядного примера)
И как записать данные на карту? (ведь по сути мне нужен массив чисел)

Что бы было меньше каментов типа МК не потянет, сразу скажу - есть проэкт подключения карты к тини (к сожалению тож на сях :( )

http://www.getchip.net/posts/087-attiny ... ng-device/
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
city77
Открыл глаза
Сообщения: 53
Зарегистрирован: Чт дек 28, 2017 23:07:31

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

Сообщение city77 »

Jetetex писал(а):Возникла идея устройства на тини 2313 для управления светодиодной матрицей 32х32. Всем она подошла, кроме обьема памяти. Решил вынести масивы данных для матрицы на внешний носитель.
купите какую нибудь мегу и не ищите проблем, "головная боль" и потраченное время обойдутся дороже.
Ответить

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