Ассемблер (ASM) для AVR в вопросах и ответах
Re: Ассемблер (ASM) для AVR в вопросах и ответах
1. Сохранить при входе в прерывание SREG и R17..R19 (при необходимости)
2. Очистить запрос на прерывание PCIF в GIFR
2. Очистить запрос на прерывание PCIF в GIFR
- Реклама
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="trofim2",url="/forum/viewtopic.php?p=3324165#p3324165"]1. Сохранить при входе в прерывание SREG и R17..R19 (при необходимости)
2. Очистить запрос на прерывание PCIF в GIFR[/uquote]
Нет, не помогает
2. Очистить запрос на прерывание PCIF в GIFR[/uquote]
Нет, не помогает
Трудное детство, стальные игрушки.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Голимый",url="/forum/viewtopic.php?p=3324191#p3324191"][uquote="trofim2",url="/forum/viewtopic.php?p=3324165#p3324165"]2. Очистить запрос на прерывание PCIF в GIFR[/uquote]
Нет, не помогает[/uquote]
При выходе из прерывания
Нет, не помогает[/uquote]
При выходе из прерывания
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Ответили выше, удалил.
Последний раз редактировалось akl Вт мар 06, 2018 14:13:01, всего редактировалось 1 раз.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="trofim2",url="/forum/viewtopic.php?p=3324200#p3324200"]При выходе из прерывания[/uquote]
Спасибо, все работает.
Простите, вы не могли бы объяснить почему есть разница в каком месте обработчика происходит сброс флага?
Спасибо, все работает.
Простите, вы не могли бы объяснить почему есть разница в каком месте обработчика происходит сброс флага?
Трудное детство, стальные игрушки.
- Реклама
Re: Ассемблер (ASM) для AVR в вопросах и ответах
При входе в прерывание флаг сбрасывается автоматически, но если прерывание длительное, возможно повторное взведение флага при наличии дребезга во время выполнение прерывания.
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
в комментарии перепутаны вход с выходом:
ldi temp, (1<<PB0)|(0<<PB3) ;PB0 - вход, PB3 - выход
int_isr: cli ;Запрет прерываний
когда МК находится в прерывании, ВСЕ прерывания и так уже запрещены. лишняя команда.
return: sei ;Разрешение прерываний
reti ;Выход
reti разрешает прерывания, дополнительно их разрешать не надо. опять лишняя команда.
не знаю, как ты считал задержку, но у меня там никак не получается 50 мс...
навскидку, не вижу причин, чтобы не работало.
ldi temp, (1<<PB0)|(0<<PB3) ;PB0 - вход, PB3 - выход
int_isr: cli ;Запрет прерываний
когда МК находится в прерывании, ВСЕ прерывания и так уже запрещены. лишняя команда.
return: sei ;Разрешение прерываний
reti ;Выход
reti разрешает прерывания, дополнительно их разрешать не надо. опять лишняя команда.
не знаю, как ты считал задержку, но у меня там никак не получается 50 мс...
навскидку, не вижу причин, чтобы не работало.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Starichok51",url="/forum/viewtopic.php?p=3324524#p3324524"]в комментарии перепутаны вход с выходом:
ldi temp, (1<<PB0)|(0<<PB3) ;PB0 - вход, PB3 - выход[/uquote]
Да, действительно ошибся.
ldi temp, (1<<PB0)|(0<<PB3) ;PB0 - вход, PB3 - выход[/uquote]
Да, действительно ошибся.
Я слышал о таком, но оставил на всякий случай. Вдруг, чего-то не так услышал.когда МК находится в прерывании, ВСЕ прерывания и так уже запрещены. лишняя команда.
reti разрешает прерывания, дополнительно их разрешать не надо. опять лишняя команда.
Считала программа, я сам весьма туманно представляю как такое рассчитывается. Но скажем, секундные задержки вполне адекватны.не знаю, как ты считал задержку, но у меня там никак не получается 50 мс...
Трудное детство, стальные игрушки.
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
какая программа считала задержку? и какую тактовую частоту ты задавал этой программе?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Частота 9 600 000, CKDIV8 выключен.
Программа вот эта
Программа вот эта
- Вложения
-
- avr_loop.PNG
- (9.51 КБ) 574 скачивания
Трудное детство, стальные игрушки.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Ассемблер сам справляется с такими примитивами.
Спойлер
Код: Выделить всё
;----- Подпрограмма задержки -----
.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 в вопросах и ответах
Это не ассемблер справляется, а препроцессор.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Спойлер
- Вложения
-
- avrasm32.PNG
- (22.71 КБ) 444 скачивания
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
А зачем ему обращаться к препроцессору? Он же в него встроен.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Вопрос, немножко не про контроллеры, но про ассемблер AVR.
Есть компилятор языка C, который доустанавливается к 4-й Студии, и вот в составе компилятора есть файл avr-as.exe. Я так понял это некий, не-атмеловский ассемблер AVR. Пытался его использовать - на любом, в т.ч нормальной файле сыпет ошибками, и компилять не хочет. Пытался искать про него - чего-то никакого руководства по нему нет. Может, кто знает, может есть такое?
Есть компилятор языка C, который доустанавливается к 4-й Студии, и вот в составе компилятора есть файл avr-as.exe. Я так понял это некий, не-атмеловский ассемблер AVR. Пытался его использовать - на любом, в т.ч нормальной файле сыпет ошибками, и компилять не хочет. Пытался искать про него - чего-то никакого руководства по нему нет. Может, кто знает, может есть такое?
Трудное детство, стальные игрушки.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Понял... это не ассемблер.
А похож был.
А похож был.
Трудное детство, стальные игрушки.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="Голимый",url="/forum/viewtopic.php?p=3327847#p3327847"]и вот в составе компилятора есть файл avr-as.exe. Может, кто знает, может есть такое?[/uquote]
Это AVR GAS ассемблер. Его синтаксис не совместим с ассемблером студии. Работает как бэкенд GCC компилятора.
можете попробовать закинуть в него такой исходник:
Это 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 Re: Ассемблер (ASM) для AVR в вопросах и ответах
Доброго времени суток всем форумчанам. Возникла идея устройства на тини 2313 для управления светодиодной матрицей 32х32. Всем она подошла, кроме обьема памяти. Решил вынести масивы данных для матрицы на внешний носитель. Шаря по просторам тырнета, нашол уйму статей по подключению сд карты к МК, но все примеры в статьях написаны на сях.
Из вышесказанного вытекает пара вопросов:
Мож у кого-то завялялся кусок кода по инициализации и работе с картой? (для наглядного примера)
И как записать данные на карту? (ведь по сути мне нужен массив чисел)
Что бы было меньше каментов типа МК не потянет, сразу скажу - есть проэкт подключения карты к тини (к сожалению тож на сях
)
http://www.getchip.net/posts/087-attiny ... ng-device/
Из вышесказанного вытекает пара вопросов:
Мож у кого-то завялялся кусок кода по инициализации и работе с картой? (для наглядного примера)
И как записать данные на карту? (ведь по сути мне нужен массив чисел)
Что бы было меньше каментов типа МК не потянет, сразу скажу - есть проэкт подключения карты к тини (к сожалению тож на сях
http://www.getchip.net/posts/087-attiny ... ng-device/
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
купите какую нибудь мегу и не ищите проблем, "головная боль" и потраченное время обойдутся дороже.Jetetex писал(а):Возникла идея устройства на тини 2313 для управления светодиодной матрицей 32х32. Всем она подошла, кроме обьема памяти. Решил вынести масивы данных для матрицы на внешний носитель.


