Страница 12 из 160
Добавлено: Пн дек 07, 2009 12:46:48
AI_Disable
Dexa, что вы имеете виду под "имитацией"? Если вам нужно, чтоб нажатие кнопки имитировалось не только программно, но и хардово, то просто переназначаем порт с кнопкой на выход и записываем в него 0 или 1 (в зависимости, от того на какой полюс источника питания замыкается реальная кнопка). Под "харовой имитацией" я имел виду, что на порте с кнопкой должен появиться такой лог. уровень, который появляется при нажатии реальной кнопки. Если же вам просто нужно, чтоб программа думала, что кнопка нажата, то так делать не следует. Просто добавьте к условию опроса кнопки, логическим "или", опрос какого-либо "флага" (бита переменной). Если нужно будет в какой-либо части программы имитировать нажатие кнопки, то просто установите этот флаг.
Добавлено: Пн дек 07, 2009 18:00:37
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
Добавлено: Пн дек 07, 2009 18:10:13
Dexa
И еще вопросик - не могу понять как загружается константа
ldi R16,(0<<ISC00)|(1<<ISC01)
Что написано после запятой?
Добавлено: Пн дек 07, 2009 22:54:07
AI_Disable
Наступил на какие-то грабли, уж не знаю виноват сам винавр или студия, в общем при написании программы на тини2313 прерывания по таймеру иногда компилируются нерабочими(основной цикл крутится, а в прерывание мы никогда не попадаем), работоспособность прерывания нелинейно зависит от кода в основном цикле. Если то же самое компилить в CVAVR, то всё работает нормально. У меня такое уже второй раз и именно на тини2313, кто-нибудь сталкивался с подобным?
AVR Studio в вопросах и ответах
Добавлено: Сб дек 12, 2009 16:39:14
Serxio
Здравствуйте! У меня такая проблема, не могу а AVR Studio 4.17 просимулировать работу таймера 1 в режиме СТС при совпадении с регистром ICR1 (режим №12). TCCR1A=0b00000000, TCCR1B=0b00011010. Причём режим №4(СТС при совпадении с OCR1A) работает. Скачал специально новую версию Studio, а проблема так и осталась. Кстати, камень mega8.
Добавлено: Вт дек 15, 2009 03:41:12
PeLazginec
Здраствуйте всем. Скачал программу AVRStudio 4.13,юзаю клик на установку,а он выдает ошибку вида "avrstudio 4.13 must be installed",подскажите пожалуйста с чем это связано
Добавлено: Вт дек 15, 2009 17:19:29
Meteor
To PeLazginec, скажите а у вас путь к установке или к файлам проекта не содержит кириллических названий? Очень американцы русских слофф не любят
Добавлено: Вт дек 15, 2009 20:24:23
PeLazginec
Meteor писал(а):To PeLazginec, скажите а у вас путь к установке или к файлам проекта не содержит кириллических названий? Очень американцы русских слофф не любят
Аха,вот в чем оно дело?! Значит я сейчас беру и создаю в корневом каталоге C: папку на английском,перемещаю avrstudio 4... и запускаю с корневого. Правильно?
Добавлено: Вт дек 15, 2009 20:32:50
Meteor
PeLazginec писал(а): Значит я сейчас беру и создаю в корневом каталоге C: папку на английском,перемещаю avrstudio 4... и запускаю с корневого. Правильно?
Да, думаю этого будет достаточно.
Добавлено: Ср дек 16, 2009 20:53:47
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 частота мигания не меняется.
Получается, что отладчик работает с постоянной небольшой частотой.
С какой? Спасибо!
Добавлено: Ср дек 16, 2009 21:41:19
Meteor
Если не ошибаюсь по умолчанию стоит 4МГц, а то что у Вас не получилось сменить тактовую - это Ваша невнимательность
Добавлено: Ср дек 16, 2009 23:33:47
lag1
То, что я делаю что-то не так, я понимаю. Не понятно пока "что".
Последовательность нажатия кнопок:
1. Assemble and run
2. AutoStep
По скорости перемещеня курсора видно, что частотат явно не Мгц, а всего лишь несколько десятков гц.
Может я запускаю отладчик в каком-то замедленном режиме?
Программа совсем небольшая, может кто посмотрит ее в отладке и подскажет мне, что я делаю не так.
Извините за назойливость.
Добавлено: Чт дек 17, 2009 07:32:21
Meteor
lag1 писал(а):То, что я делаю что-то не так, я понимаю. Не понятно пока "что".
Последовательность нажатия кнопок:
1. Assemble and run
2. AutoStep
По скорости перемещеня курсора видно, что частотат явно не Мгц, а всего лишь несколько десятков гц.
Может я запускаю отладчик в каком-то замедленном режиме?
Программа совсем небольшая, может кто посмотрит ее в отладке и подскажет мне, что я делаю не так.
Извините, а как Вы себе представляете АвтоШаг с частотой 4МГц? С отрисовкой состояний всех регистров, а их там до черта? Так не работают и студия так не работает. Тайминги можно смотреть там (файл). Симуляция нужна что бы посмотреть как работает до заливки. А после заливки все в железе
Добавлено: Чт дек 17, 2009 14:12:58
lag1
(Извините, а как Вы себе представляете АвтоШаг с частотой 4МГц? С отрисовкой состояний всех регистров, а их там до черта? Так не работают и студия так не работает. Тайминги можно смотреть там (файл). Симуляция нужна что бы посмотреть как работает до заливки.)
Цитата.
Да, я понимаю, что при симуляции частота явно не Мгц.
Вот мне же и хотелось узнать, с какой частотой работает АвтоШаг и
можно ли именно эту частоту изменить.
И еще, если менять частоту в меню Debug-AVR Simulator Options с
1Мгц на 8Мгц, где можно увидеть эти изменения(на что они влияют)?
Можно на примере программы мигания светодиода.
Больше вопросов постараюсь не задавать, потому как чувствую, что сильно зациклился на этой теме и уже всем надоел.
Спасибо за ответы! Удачи!
Добавлено: Чт дек 17, 2009 17:21:48
Meteor
lag1 писал(а):Вот мне же и хотелось узнать, с какой частотой работает АвтоШаг и можно ли именно эту частоту изменить.
На счет изменить скорость автошага не знаю. Такая опция есть у IAR, в студии не нашел
lag1 писал(а):
И еще, если менять частоту в меню Debug-AVR Simulator Options с
1Мгц на 8Мгц, где можно увидеть эти изменения(на что они влияют)?
Я Вам выделил в предыдущем посте показания частоты и времени выполнения. Выше есть еще число циклов. Как только смените тактовую у вас поплывут и значения времени. Число циклов останется тем же (для одного и того же участка кода). Успехов!
Добавлено: Пт дек 18, 2009 09:11:39
ARV
lag1 писал(а):Светодиод (квадратик PORTB,1) мигает, но с изменением частоты в
меню Debug-AVR Simulator Options частота мигания не меняется.
Получается, что отладчик работает с постоянной небольшой частотой.
С какой? Спасибо!
отладчик студии - не симулятор в реальном времени, он позволяет отладить логику программы, а вовсе не насладиться миганием светодиодов. т.е. никакие временные интерваля реально не выдерживаются, только по внутренним счетчикам времени их и можно увидеть. для примера: задержку в 100 миллисекунд студия эмулирует почти минуту (зависит от процессора компа)
Добавлено: Вс дек 20, 2009 23:55:19
Himik
Здравствуйте. Помогите пожалуйста разобраться. Скачал AVR Studio 4.18.
Написал программу с подпрограммами. Однако когда подпрограмма заканчивается, то возвращается совсем не к тому месту, откуда её вызывали. Причём это первый вызов подпрограммы.
Если кто знает, объясните пожалуйста, что не так. А то просто руки опускаются. То ли симулятор глюченый, то ли с прогой что-то не то. Но вроде всё правильно делаю, как учили.
Добавлено: Пн дек 21, 2009 00:15:27
ibiza11
Himik писал(а):Здравствуйте. Помогите пожалуйста разобраться. Скачал AVR Studio 4.18..
стек инициализируй!!!!
Код: Выделить всё
ldi tmp,low(ramend)
out SPL,tmp
ldi tmp,high(ramend)
out SPH,tmp
Добавлено: Пн дек 21, 2009 00:53:53
DiGiCat
PeLazginec писал(а):Скачал программу AVRStudio 4.13,юзаю клик на установку,а он выдает ошибку вида "avrstudio 4.13 must be installed",подскажите пожалуйста с чем это связано
Эт ругается, что сама AVR Studio еще не установлена.

Похоже сейчас пытаешься вместо самой AVR Studio, пакет ее обновлений установить - не то ставишь сейчас, установить вместо AVR Studio, пытаешься ServicePack ( он около 40 весит, сама Studio около 100мб ). Скачивай и ставь сначала другой файл..
Добавлено: Пн дек 21, 2009 09:42:49
Himik
Огромное, огромное спачибо ibiza11, он меня просто спас
