AVR studio в вопросах и ответах
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Dexa, что вы имеете виду под "имитацией"? Если вам нужно, чтоб нажатие кнопки имитировалось не только программно, но и хардово, то просто переназначаем порт с кнопкой на выход и записываем в него 0 или 1 (в зависимости, от того на какой полюс источника питания замыкается реальная кнопка). Под "харовой имитацией" я имел виду, что на порте с кнопкой должен появиться такой лог. уровень, который появляется при нажатии реальной кнопки. Если же вам просто нужно, чтоб программа думала, что кнопка нажата, то так делать не следует. Просто добавьте к условию опроса кнопки, логическим "или", опрос какого-либо "флага" (бита переменной). Если нужно будет в какой-либо части программы имитировать нажатие кнопки, то просто установите этот флаг.
Ничего не понял, но мне нужно проверить срабатывает ли прерывание, да и все программу проследить как работает. В протеусе не пашет, вот и решил прогнать в аврстудио. Кнопка весит на входе внешнего прерывания INT1, как только наступило прерывание - антидребезг кнопки, включаем реле, потом задержка на 3 секунды примерно (при этом светодиод моргает примерно каждые 0,5 секунды), потом выключили реле. Знаю задержка реализована глупо, если подскажите как лучше со сведодиодами и задержкой (а еще и научно популярно объясните) то буду только рад.
Код: Выделить всё
;AT90S2313 @ External 4Mhz
.nolist
.include "2313def.inc"
.list
;***************??????????*****************
.def temp=R16
.def temp1=r17
.def temp2=r18
.def temp3=r19
.def count=r20
.def count1=r21
;***********************************************
.cseg
.org 0
rjmp RESET ; Reset Handler
rjmp EXT_INT0 ; IRQ0 Handler
rjmp EXT_INT1 ; IRQ1 Handler
rjmp TIM_CAPT1 ; Timer1 Capture Handler
rjmp TIM_COMP1 ; Timer1 Compare Handler
rjmp TIM_OVF1 ; Timer1 Overflow Handler
rjmp TIM_OVF0 ; Timer0 Overflow Handler
rjmp UART_RXC ; UART RX Complete Handler
rjmp UART_DRE ; UDR Empty Handler
rjmp UART_TXC ; UART TX Complete Handler
rjmp ANA_COMP ; Analog Comparator Handler
EXT_INT0: ret
TIM_COMP1: ret
TIM_OVF1:ret
TIM_CAPT1 : ret
TIM_OVF0 : ret
UART_RXC : ret
UART_DRE : ret
UART_TXC : ret
ANA_COMP : ret
;***************?????????????*****************
RESET: ldi temp,RamEnd ;????????????? ?????
out SPL,temp
cli
ldi temp,0b11111111;????? ? ?????? ????? B
out DDRB,temp
ldi temp,0b10000011;????? ? ?????? ????? D
out DDRD,temp
ldi temp,0b00000000;????????? ????????? ????? B ? ????????
out PortB,temp
ldi temp,0b00000000;????????? ????????? ????? D ? ????????
out PortD,temp
ldi Temp,0b11000000;????????? ?????????? INT0 ? INT1
out GIMSK,Temp
ldi Temp,0b00001010; INT0 ?? ?? ?????????? ??????, INT1 ?? ?????????? ??????
out MCUCR,Temp
ldi Temp,0b11000000; ???????? ?????????? ?? ???????????? 1 ???????
out TIMSK, Temp
ldi Temp,0 ;????????? ???????
out TCNT1H,Temp
out TCNT1L,Temp
sei
Start:
rjmp Start; ??????????? ????
EXT_INT1:
rcall Antidrebezg
in temp3, SREG
push temp3
sbi PortB,4; ??????? ?????
rcall Zadergka
cbi PortB,4;??????? ?????
pop temp3
out SREG,temp3
reti; ????? ?? ??????????? ?????????? INT1
;*****************???????????*********************
; ??? ?????? 4 ??? ???? ?????? ????? ???????? 10 ??, ????????? ?????????? count
;???????? 2 ??????? - ???????? 20 ??
Antidrebezg:
push Temp1
push Temp2
ldi Temp1,0
ldi Temp2,50
ldi count,2
d11: dec Temp1
brne d11
dec Temp2
brne d11
pop Temp2
pop Temp1
dec count
brne d11
ret
Zadergka:
sbi PortD,0
push Temp1
push Temp2
ldi Temp1,0
ldi Temp2,0
ldi count,11
ldi count1,6
d12: dec Temp1
brne d12
dec Temp2
brne d12
dec count
brne d12;
cbi PortD,0
dec count1
brne d12
pop Temp2
pop Temp1
ret
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Наступил на какие-то грабли, уж не знаю виноват сам винавр или студия, в общем при написании программы на тини2313 прерывания по таймеру иногда компилируются нерабочими(основной цикл крутится, а в прерывание мы никогда не попадаем), работоспособность прерывания нелинейно зависит от кода в основном цикле. Если то же самое компилить в CVAVR, то всё работает нормально. У меня такое уже второй раз и именно на тини2313, кто-нибудь сталкивался с подобным?
AVR Studio в вопросах и ответах
Здравствуйте! У меня такая проблема, не могу а AVR Studio 4.17 просимулировать работу таймера 1 в режиме СТС при совпадении с регистром ICR1 (режим №12). TCCR1A=0b00000000, TCCR1B=0b00011010. Причём режим №4(СТС при совпадении с OCR1A) работает. Скачал специально новую версию Studio, а проблема так и осталась. Кстати, камень mega8.
-
PeLazginec
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Пт дек 04, 2009 16:35:57
Здраствуйте всем. Скачал программу AVRStudio 4.13,юзаю клик на установку,а он выдает ошибку вида "avrstudio 4.13 must be installed",подскажите пожалуйста с чем это связано
- Вложения
-
- -уменьшенное.jpg
- (29.61 КБ) 595 скачиваний
-
PeLazginec
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Пт дек 04, 2009 16:35:57
Meteor писал(а):To PeLazginec, скажите а у вас путь к установке или к файлам проекта не содержит кириллических названий? Очень американцы русских слофф не любят
Аха,вот в чем оно дело?! Значит я сейчас беру и создаю в корневом каталоге C: папку на английском,перемещаю avrstudio 4... и запускаю с корневого. Правильно?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
PeLazginec писал(а): Значит я сейчас беру и создаю в корневом каталоге C: папку на английском,перемещаю avrstudio 4... и запускаю с корневого. Правильно?
Да, думаю этого будет достаточно.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Вопрос уже задавался:
"Как в отладчике частоту МК сменить?"
Был ответ:
"В режиме отладки: меню Debug-AVR Simulator Options"
Что-то не получается. Запускал в отладчике программу:
.include "tn2313def.inc"
.cseg
.org 0
ldi r31,LOW(RAMEND)
out spl,r31
ldi r31,$ff
out ddrb,r31
Loop:
SBI PORTB,1
rcall wait
CBI PORTB,1
rcall wait
rjmp Loop
wait:
ldi r17,2
m: ldi r18,2
m1: dec r18
brne m1
dec r17
brne m
ret
Светодиод (квадратик PORTB,1) мигает, но с изменением частоты в
меню Debug-AVR Simulator Options частота мигания не меняется.
Получается, что отладчик работает с постоянной небольшой частотой.
С какой? Спасибо!
"Как в отладчике частоту МК сменить?"
Был ответ:
"В режиме отладки: меню Debug-AVR Simulator Options"
Что-то не получается. Запускал в отладчике программу:
.include "tn2313def.inc"
.cseg
.org 0
ldi r31,LOW(RAMEND)
out spl,r31
ldi r31,$ff
out ddrb,r31
Loop:
SBI PORTB,1
rcall wait
CBI PORTB,1
rcall wait
rjmp Loop
wait:
ldi r17,2
m: ldi r18,2
m1: dec r18
brne m1
dec r17
brne m
ret
Светодиод (квадратик PORTB,1) мигает, но с изменением частоты в
меню Debug-AVR Simulator Options частота мигания не меняется.
Получается, что отладчик работает с постоянной небольшой частотой.
С какой? Спасибо!
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Если не ошибаюсь по умолчанию стоит 4МГц, а то что у Вас не получилось сменить тактовую - это Ваша невнимательность
- Вложения
-
- Option1.jpg
- (30.85 КБ) 627 скачиваний
-
- Option.jpg
- (35.27 КБ) 650 скачиваний
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
То, что я делаю что-то не так, я понимаю. Не понятно пока "что".
Последовательность нажатия кнопок:
1. Assemble and run
2. AutoStep
По скорости перемещеня курсора видно, что частотат явно не Мгц, а всего лишь несколько десятков гц.
Может я запускаю отладчик в каком-то замедленном режиме?
Программа совсем небольшая, может кто посмотрит ее в отладке и подскажет мне, что я делаю не так.
Извините за назойливость.
Последовательность нажатия кнопок:
1. Assemble and run
2. AutoStep
По скорости перемещеня курсора видно, что частотат явно не Мгц, а всего лишь несколько десятков гц.
Может я запускаю отладчик в каком-то замедленном режиме?
Программа совсем небольшая, может кто посмотрит ее в отладке и подскажет мне, что я делаю не так.
Извините за назойливость.
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
lag1 писал(а):То, что я делаю что-то не так, я понимаю. Не понятно пока "что".
Последовательность нажатия кнопок:
1. Assemble and run
2. AutoStep
По скорости перемещеня курсора видно, что частотат явно не Мгц, а всего лишь несколько десятков гц.
Может я запускаю отладчик в каком-то замедленном режиме?
Программа совсем небольшая, может кто посмотрит ее в отладке и подскажет мне, что я делаю не так.
Извините, а как Вы себе представляете АвтоШаг с частотой 4МГц? С отрисовкой состояний всех регистров, а их там до черта? Так не работают и студия так не работает. Тайминги можно смотреть там (файл). Симуляция нужна что бы посмотреть как работает до заливки. А после заливки все в железе
- Вложения
-
- simul.JPG
- (49.02 КБ) 622 скачивания
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
(Извините, а как Вы себе представляете АвтоШаг с частотой 4МГц? С отрисовкой состояний всех регистров, а их там до черта? Так не работают и студия так не работает. Тайминги можно смотреть там (файл). Симуляция нужна что бы посмотреть как работает до заливки.)
Цитата.
Да, я понимаю, что при симуляции частота явно не Мгц.
Вот мне же и хотелось узнать, с какой частотой работает АвтоШаг и
можно ли именно эту частоту изменить.
И еще, если менять частоту в меню Debug-AVR Simulator Options с
1Мгц на 8Мгц, где можно увидеть эти изменения(на что они влияют)?
Можно на примере программы мигания светодиода.
Больше вопросов постараюсь не задавать, потому как чувствую, что сильно зациклился на этой теме и уже всем надоел.
Спасибо за ответы! Удачи!
Цитата.
Да, я понимаю, что при симуляции частота явно не Мгц.
Вот мне же и хотелось узнать, с какой частотой работает АвтоШаг и
можно ли именно эту частоту изменить.
И еще, если менять частоту в меню Debug-AVR Simulator Options с
1Мгц на 8Мгц, где можно увидеть эти изменения(на что они влияют)?
Можно на примере программы мигания светодиода.
Больше вопросов постараюсь не задавать, потому как чувствую, что сильно зациклился на этой теме и уже всем надоел.
Спасибо за ответы! Удачи!
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
lag1 писал(а):Вот мне же и хотелось узнать, с какой частотой работает АвтоШаг и можно ли именно эту частоту изменить.
На счет изменить скорость автошага не знаю. Такая опция есть у IAR, в студии не нашел
lag1 писал(а):И еще, если менять частоту в меню Debug-AVR Simulator Options с
1Мгц на 8Мгц, где можно увидеть эти изменения(на что они влияют)?
Я Вам выделил в предыдущем посте показания частоты и времени выполнения. Выше есть еще число циклов. Как только смените тактовую у вас поплывут и значения времени. Число циклов останется тем же (для одного и того же участка кода). Успехов!
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
отладчик студии - не симулятор в реальном времени, он позволяет отладить логику программы, а вовсе не насладиться миганием светодиодов. т.е. никакие временные интерваля реально не выдерживаются, только по внутренним счетчикам времени их и можно увидеть. для примера: задержку в 100 миллисекунд студия эмулирует почти минуту (зависит от процессора компа)lag1 писал(а):Светодиод (квадратик PORTB,1) мигает, но с изменением частоты в
меню Debug-AVR Simulator Options частота мигания не меняется.
Получается, что отладчик работает с постоянной небольшой частотой.
С какой? Спасибо!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Здравствуйте. Помогите пожалуйста разобраться. Скачал AVR Studio 4.18.
Написал программу с подпрограммами. Однако когда подпрограмма заканчивается, то возвращается совсем не к тому месту, откуда её вызывали. Причём это первый вызов подпрограммы.
Если кто знает, объясните пожалуйста, что не так. А то просто руки опускаются. То ли симулятор глюченый, то ли с прогой что-то не то. Но вроде всё правильно делаю, как учили.
Написал программу с подпрограммами. Однако когда подпрограмма заканчивается, то возвращается совсем не к тому месту, откуда её вызывали. Причём это первый вызов подпрограммы.
Если кто знает, объясните пожалуйста, что не так. А то просто руки опускаются. То ли симулятор глюченый, то ли с прогой что-то не то. Но вроде всё правильно делаю, как учили.
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
стек инициализируй!!!!Himik писал(а):Здравствуйте. Помогите пожалуйста разобраться. Скачал AVR Studio 4.18..
Код: Выделить всё
ldi tmp,low(ramend)
out SPL,tmp
ldi tmp,high(ramend)
out SPH,tmpСтавим плюсы: )
Эт ругается, что сама AVR Studio еще не установлена.PeLazginec писал(а):Скачал программу AVRStudio 4.13,юзаю клик на установку,а он выдает ошибку вида "avrstudio 4.13 must be installed",подскажите пожалуйста с чем это связано