AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Сообщение AI_Disable »

Dexa, что вы имеете виду под "имитацией"? Если вам нужно, чтоб нажатие кнопки имитировалось не только программно, но и хардово, то просто переназначаем порт с кнопкой на выход и записываем в него 0 или 1 (в зависимости, от того на какой полюс источника питания замыкается реальная кнопка). Под "харовой имитацией" я имел виду, что на порте с кнопкой должен появиться такой лог. уровень, который появляется при нажатии реальной кнопки. Если же вам просто нужно, чтоб программа думала, что кнопка нажата, то так делать не следует. Просто добавьте к условию опроса кнопки, логическим "или", опрос какого-либо "флага" (бита переменной). Если нужно будет в какой-либо части программы имитировать нажатие кнопки, то просто установите этот флаг.
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

Ничего не понял, но мне нужно проверить срабатывает ли прерывание, да и все программу проследить как работает. В протеусе не пашет, вот и решил прогнать в аврстудио. Кнопка весит на входе внешнего прерывания 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лкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

И еще вопросик - не могу понять как загружается константа
ldi R16,(0<<ISC00)|(1<<ISC01)
Что написано после запятой?
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Сообщение AI_Disable »

Наступил на какие-то грабли, уж не знаю виноват сам винавр или студия, в общем при написании программы на тини2313 прерывания по таймеру иногда компилируются нерабочими(основной цикл крутится, а в прерывание мы никогда не попадаем), работоспособность прерывания нелинейно зависит от кода в основном цикле. Если то же самое компилить в CVAVR, то всё работает нормально. У меня такое уже второй раз и именно на тини2313, кто-нибудь сталкивался с подобным?
Serxio
Родился
Сообщения: 1
Зарегистрирован: Сб дек 12, 2009 15:16:26
Откуда: Комсомольск-на-Амуре

AVR Studio в вопросах и ответах

Сообщение Serxio »

Здравствуйте! У меня такая проблема, не могу а AVR Studio 4.17 просимулировать работу таймера 1 в режиме СТС при совпадении с регистром ICR1 (режим №12). TCCR1A=0b00000000, TCCR1B=0b00011010. Причём режим №4(СТС при совпадении с OCR1A) работает. Скачал специально новую версию Studio, а проблема так и осталась. Кстати, камень mega8.
PeLazginec
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт дек 04, 2009 16:35:57

Сообщение PeLazginec »

Здраствуйте всем. Скачал программу AVRStudio 4.13,юзаю клик на установку,а он выдает ошибку вида "avrstudio 4.13 must be installed",подскажите пожалуйста с чем это связано
Вложения
-уменьшенное.jpg
(29.61 КБ) 595 скачиваний
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

To PeLazginec, скажите а у вас путь к установке или к файлам проекта не содержит кириллических названий? Очень американцы русских слофф не любят
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PeLazginec
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт дек 04, 2009 16:35:57

Сообщение PeLazginec »

Meteor писал(а):To PeLazginec, скажите а у вас путь к установке или к файлам проекта не содержит кириллических названий? Очень американцы русских слофф не любят

Аха,вот в чем оно дело?! Значит я сейчас беру и создаю в корневом каталоге C: папку на английском,перемещаю avrstudio 4... и запускаю с корневого. Правильно?
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

PeLazginec писал(а): Значит я сейчас беру и создаю в корневом каталоге C: папку на английском,перемещаю avrstudio 4... и запускаю с корневого. Правильно?

Да, думаю этого будет достаточно.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
lag1
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн июн 09, 2008 23:40:31

Сообщение lag1 »

Вопрос уже задавался:
"Как в отладчике частоту МК сменить?"
Был ответ:
"В режиме отладки: меню 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
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

Если не ошибаюсь по умолчанию стоит 4МГц, а то что у Вас не получилось сменить тактовую - это Ваша невнимательность
Вложения
Option1.jpg
(30.85 КБ) 627 скачиваний
Option.jpg
(35.27 КБ) 650 скачиваний
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
lag1
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн июн 09, 2008 23:40:31

Сообщение lag1 »

То, что я делаю что-то не так, я понимаю. Не понятно пока "что".
Последовательность нажатия кнопок:
1. Assemble and run
2. AutoStep
По скорости перемещеня курсора видно, что частотат явно не Мгц, а всего лишь несколько десятков гц.
Может я запускаю отладчик в каком-то замедленном режиме?
Программа совсем небольшая, может кто посмотрит ее в отладке и подскажет мне, что я делаю не так.
Извините за назойливость.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

lag1 писал(а):То, что я делаю что-то не так, я понимаю. Не понятно пока "что".
Последовательность нажатия кнопок:
1. Assemble and run
2. AutoStep
По скорости перемещеня курсора видно, что частотат явно не Мгц, а всего лишь несколько десятков гц.
Может я запускаю отладчик в каком-то замедленном режиме?
Программа совсем небольшая, может кто посмотрит ее в отладке и подскажет мне, что я делаю не так.

Извините, а как Вы себе представляете АвтоШаг с частотой 4МГц? С отрисовкой состояний всех регистров, а их там до черта? Так не работают и студия так не работает. Тайминги можно смотреть там (файл). Симуляция нужна что бы посмотреть как работает до заливки. А после заливки все в железе
Вложения
simul.JPG
(49.02 КБ) 622 скачивания
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
lag1
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Пн июн 09, 2008 23:40:31

Сообщение lag1 »

(Извините, а как Вы себе представляете АвтоШаг с частотой 4МГц? С отрисовкой состояний всех регистров, а их там до черта? Так не работают и студия так не работает. Тайминги можно смотреть там (файл). Симуляция нужна что бы посмотреть как работает до заливки.)
Цитата.

Да, я понимаю, что при симуляции частота явно не Мгц.
Вот мне же и хотелось узнать, с какой частотой работает АвтоШаг и
можно ли именно эту частоту изменить.
И еще, если менять частоту в меню Debug-AVR Simulator Options с
1Мгц на 8Мгц, где можно увидеть эти изменения(на что они влияют)?
Можно на примере программы мигания светодиода.
Больше вопросов постараюсь не задавать, потому как чувствую, что сильно зациклился на этой теме и уже всем надоел.
Спасибо за ответы! Удачи!
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

lag1 писал(а):Вот мне же и хотелось узнать, с какой частотой работает АвтоШаг и можно ли именно эту частоту изменить.

На счет изменить скорость автошага не знаю. Такая опция есть у IAR, в студии не нашел
lag1 писал(а):И еще, если менять частоту в меню Debug-AVR Simulator Options с
1Мгц на 8Мгц, где можно увидеть эти изменения(на что они влияют)?

Я Вам выделил в предыдущем посте показания частоты и времени выполнения. Выше есть еще число циклов. Как только смените тактовую у вас поплывут и значения времени. Число циклов останется тем же (для одного и того же участка кода). Успехов!
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

lag1 писал(а):Светодиод (квадратик PORTB,1) мигает, но с изменением частоты в
меню Debug-AVR Simulator Options частота мигания не меняется.
Получается, что отладчик работает с постоянной небольшой частотой.
С какой? Спасибо!
отладчик студии - не симулятор в реальном времени, он позволяет отладить логику программы, а вовсе не насладиться миганием светодиодов. т.е. никакие временные интерваля реально не выдерживаются, только по внутренним счетчикам времени их и можно увидеть. для примера: задержку в 100 миллисекунд студия эмулирует почти минуту (зависит от процессора компа)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Himik
Родился
Сообщения: 13
Зарегистрирован: Вс дек 20, 2009 23:03:00
Откуда: Владимир

Сообщение Himik »

Здравствуйте. Помогите пожалуйста разобраться. Скачал AVR Studio 4.18.
Написал программу с подпрограммами. Однако когда подпрограмма заканчивается, то возвращается совсем не к тому месту, откуда её вызывали. Причём это первый вызов подпрограммы.
Если кто знает, объясните пожалуйста, что не так. А то просто руки опускаются. То ли симулятор глюченый, то ли с прогой что-то не то. Но вроде всё правильно делаю, как учили.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Himik писал(а):Здравствуйте. Помогите пожалуйста разобраться. Скачал AVR Studio 4.18..
стек инициализируй!!!!

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

      ldi tmp,low(ramend)
      out SPL,tmp
      ldi tmp,high(ramend)
      out SPH,tmp
Ставим плюсы: )
Аватара пользователя
DiGiCat
Друг Кота
Сообщения: 4793
Зарегистрирован: Пт июл 11, 2008 09:42:35
Откуда: Made in USSR

Сообщение DiGiCat »

PeLazginec писал(а):Скачал программу AVRStudio 4.13,юзаю клик на установку,а он выдает ошибку вида "avrstudio 4.13 must be installed",подскажите пожалуйста с чем это связано
Эт ругается, что сама AVR Studio еще не установлена. :) Похоже сейчас пытаешься вместо самой AVR Studio, пакет ее обновлений установить - не то ставишь сейчас, установить вместо AVR Studio, пытаешься ServicePack ( он около 40 весит, сама Studio около 100мб ). Скачивай и ставь сначала другой файл..
Аватара пользователя
Himik
Родился
Сообщения: 13
Зарегистрирован: Вс дек 20, 2009 23:03:00
Откуда: Владимир

Сообщение Himik »

Огромное, огромное спачибо ibiza11, он меня просто спас :P
Ответить

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