AVR studio в вопросах и ответах
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
Спасибо огроменное что бы я без вас делал!!!! Дайте я вас расцелую

- Реклама
С нашей помощью бы самостоятельно сделалиkotriks писал(а):Спасибо огроменное что бы я без вас делал!!!!
vitalik_1984 писал(а):Код: Выделить всё
fputstr("Incorrect");
Похоже, не правда ли?oleg110592 писал(а):Код: Выделить всё
uputs((unsigned char*)"Enter last key\n\r");
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
да тут большинство людей на форуме надо целовать (надо просто виртуально
) - сам тут многому учусь.
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
ребята как сделать ввод комманд не цифрами а словами
чтобы вызов функции вызывался вводом слова read. ??
Код: Выделить всё
ISR(USART_RX_vect)
{
int b;
b = UDR0;
if (b=='1') read();
}
Код: Выделить всё
read();Принимать в буфер и, по окончанию приёма (или "на лету"), анализировать его.
ЗЫ: А почему Вы принимаете и сравниваете символ, а объявили переменную как int ?
ЗЫ: А почему Вы принимаете и сравниваете символ, а объявили переменную как int ?
- Реклама
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
не вижу разницы char или int что так что так работает одинаково.Аlex писал(а):
ЗЫ: А почему Вы принимаете и сравниваете символ, а объявили переменную как int ?
знал бы как не спрашивалПринимать в буфер и, по окончанию приёма (или "на лету"), анализировать его.
Для Вас по-барабану как, лишь бы работало ?kotriks писал(а):не вижу разницы char или int что так что так работает одинаково.
Что "знал бы как" ? Мы в голову Вам залезть не можем, чтобы узнать что Вы знаете, а что нет, и что Вам нужно конкретно узнатьkotriks писал(а):знал бы как не спрашивал
- Сообщения: 3
- Зарегистрирован: Пн дек 02, 2013 01:58:34
Здравствуйте, хотел бы проконсультироваться у специалистов). Вот думаю заняться новым хобби, программировать микроконтроллеры и на их базе собирать всякие интересные гаджеты (Квадрокоптеры, радиопередатчики и прочие игрушки). На данный момент есть небольшие навыки в программировании. Но меня очень мучает вопрос, потяну ли я такую ношу ))). Так как никаких измерительных приборов и элементной базы не имеется, то это хобби кажется довольно-таки затратным (например, цена осциллографа немного смутила, а ещё паяльник нужен и т.п. )))) ).
Так вот вопрос! Существует ли виртуальная среда для разработки, например, цифрового радиопередатчика (в AVR studio есть необходимые компоненты для теста?). Т.к. в виртуальной среде измерительные приборы и элементы бесплатны))), а так же хотелось бы посмотреть как оно пойдёт, вдруг не моё?! Или может кто посоветует какую-либо другую среду разработки.
P.S. Надеюсь в нужную ветку вопрос написал? )
Так вот вопрос! Существует ли виртуальная среда для разработки, например, цифрового радиопередатчика (в AVR studio есть необходимые компоненты для теста?). Т.к. в виртуальной среде измерительные приборы и элементы бесплатны))), а так же хотелось бы посмотреть как оно пойдёт, вдруг не моё?! Или может кто посоветует какую-либо другую среду разработки.
P.S. Надеюсь в нужную ветку вопрос написал? )
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
сделал так но не работает ввожу ! и сразу вызывается функция, в кодвижене работает если ввожу !read
в авр студии как то по другому всё 
Код: Выделить всё
void activeCommand(char c[])
{
if (c[0]=='r'&&c[1]=='e'&&c[2]=='a'&&c[3]=='d')
{
read();
}
}
unsigned char i, COMMAND[4];
unsigned char i = 0;
ISR(USART_RX_vect)
{
int b;
b = UDR0;
if (b != '!')
{
COMMAND[i] = b;
i++;
}
else
{
i = 0;
activeCommand(COMMAND);
}
}
Только среда это платная. И даже очень.Pavel1985 писал(а):Т.к. в виртуальной среде измерительные приборы и элементы бесплатны
Посмотрите Proteus.
P.S.: А вообще, судя по направлению деятельности, рекомендую поискать специализированный форум по моделированию с радиоуправлением. Там уже есть готовые проекты.
Тут ведь какая вещь, все симуляторы очень далеки от реальности и обычно требуется тонкое знание происходящих процессов чтобы запустить их в симуляторе. Симулятор оправдан в основном лишь для окончательной полировки идеи или совсем начальной стадии для отладки очень простых вещей(подергать выводом и т.д.), подбора параметров которые в реальности будешь очень долго и затратно подбирать и т.д.Существует ли виртуальная среда для разработки, например, цифрового радиопередатчика
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
имхо будет работать если read!kotriks писал(а):работает если ввожу !read
- Сообщения: 274
- Зарегистрирован: Чт апр 28, 2011 15:08:58
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Если очищать буфер на 'i' не будет срабатывать
Код: Выделить всё
else{
i = 0;
activeCommand(COMMAND);
c[0]='0';
c[1]='0';
c[2]='0';
c[3]='0';
}
- Сообщения: 3
- Зарегистрирован: Пн дек 02, 2013 01:58:34
На сколько я понял, в моделировании с радиоуправлением используются "готовые модули" из которых собирается устройство. А хочется уметь самому собирать такие модули.Smen писал(а):Только среда это платная. И даже очень.
Посмотрите Proteus.
P.S.: А вообще, судя по направлению деятельности, рекомендую поискать специализированный форум по моделированию с радиоуправлением. Там уже есть готовые проекты.
В Proteus можно передатчик и приёмник смоделировать, чтобы 2-ый код передавать? А то после прочтения статей на тему модуляций появился некий ужас ))) Я даже не представляю сколько компонентов и какие измерительные приборы мне понадобятся, чтобы самому это пощупать, поэкспериментировать.
А общую "идеальную" схему нельзя смоделировать, чтобы понять основы, например, какая модуляция бывает и как оно работает? А потом уже опираясь на неё собирать нормальные схемы подгоняя под наш "не идеальный мир"?Alexeyslav писал(а): Тут ведь какая вещь, все симуляторы очень далеки от реальности и обычно требуется тонкое знание происходящих процессов чтобы запустить их в симуляторе. Симулятор оправдан в основном лишь для окончательной полировки идеи или совсем начальной стадии для отладки очень простых вещей(подергать выводом и т.д.), подбора параметров которые в реальности будешь очень долго и затратно подбирать и т.д.
Какая модуляция бывает проще в книжках почитать, там все проверено и работает годами - нет смысла проверять в симуляторе базовые вещи.
Выход передатчика соединяешь со входом приемника оставляя радиоканал в виде черного ящика - тебя интересует только то что сигнал передается неискаженным с выходе передатчика до входа приемника. Дальше уже идет разные уровни уточнения, например вводится элемент реализующий "помеху" в передаче и смотришь как с этим справляется спроектированная аппаратура.
Зачем? с этой задачей обычный провод не справляется?В Proteus можно передатчик и приёмник смоделировать, чтобы 2-ый код передавать?
Выход передатчика соединяешь со входом приемника оставляя радиоканал в виде черного ящика - тебя интересует только то что сигнал передается неискаженным с выходе передатчика до входа приемника. Дальше уже идет разные уровни уточнения, например вводится элемент реализующий "помеху" в передаче и смотришь как с этим справляется спроектированная аппаратура.
Добрый день!
Начал осваивать AVRStudio. Набросал программку, которая при получении символа D в ответ отправляет Atmega168. Пробую в железе, байты распознает, даже отвечает, но вместо символов только H60 идет. Подскажите, что не правильно делаю?
Камень Atmega168
PS - разобрался, при отправки затирал байт в регистре)
Начал осваивать AVRStudio. Набросал программку, которая при получении символа D в ответ отправляет Atmega168. Пробую в железе, байты распознает, даже отвечает, но вместо символов только H60 идет. Подскажите, что не правильно делаю?
Камень Atmega168
Спойлер
Код: Выделить всё
.nolist
.include "m168def.inc"
.list
.equ XTAL = 20000 ;÷àñòîòà ãåíåðàòîðà â êÃö
.equ BAUD = 115200 ;íåîáõîäèìàÿ ñêîðîñòü îáìåíà â áèò/ñ
.equ NB = ((10000*XTAL)/(16*BAUD)-5)/10
.def temp = R16 ;âñïîìîãàòåëüíûé ðåãèñòð
.cseg
.org $0
ldi temp,low(RAMEND) ;èíèöèàëèçàöèÿ ñòåêà
STS SPL,temp
ldi temp,high(RAMEND)
STS SPH,temp
clr temp ;çàäàåì ïàðàìåòðû USART: 115200, 8-N-1
STS UBRR0H,temp
ldi temp,NB
STS UBRR0L,temp
ldi temp,(1<<RXEN0)|(1<<TXEN0)
STS UCSR0B,temp
ldi temp,(1<<UCSZ00)|(1<<UCSZ01)
STS UCSR0C,temp
; Ïîäïðîãðàììà çàãðóç÷èê
; R16 - ðåãèñòð äëÿ ïðèåìà/ïåðåäà÷è äàííûõ ïî USART
; R17 - ðåãèñòð äëÿ ïðîìåæóòî÷íûõ îïåðàöèé
; R18 - èñïîëüçóåòñÿ êàê ñ÷åò÷èê ñëîâ
; ZH:ZL - ðåãèñòð ñ àäðåñîì ñòðàíèöû è óêàçàòåëü íà ñòðîêó
; R1,R0 - èñïîëüçóþòñÿ ñ èíñòðóêöèåé spm
boot_loader:
rcall getc ;ïðèíèìàåì ÷åðåç ïîðò êîìàíäó
cpi R16,'D' ;åñëè "D", òî ïåðåäàåì ñòðîêó
brne bl1
rjmp device_id ;ïîäòâåðæäåíèÿ ïðèñóòñòâèÿ íà ëèíèè
bl1:
cpi R16,'O' ;åñëè "O", òî çàâåðøåíèå ïîäïðîãðàììû
brne bl2
ret ;åñëè ïðèíÿò èíîé ñèìâîë, òî âîçâðàùàåì
bl2:
rcall put_err ;ñèìâîë îøèáêè "?"
rjmp boot_loader
device_id:
ldi ZH,high(2*id_string);çàíîñèì â óêàçàòåëü Z àäðåñ
ldi ZL,low(2*id_string) ;íà÷àëà ñòðîêè ïîäòâåðæäåíèÿ
di1:
lpm R16,Z+ ;ïåðåäàåì ñèìâîëû äî òåõ ïîð, ïîêà
tst R16 ;íå âñòðåòèòñÿ 0 (êîíåö ñòðîêè)
breq boot_loader
rcall putc
rjmp di1
; Ïîäïðîãðàììà ïåðåäà÷è áàéòà
; R16 - áàéò äëÿ ïåðåäà÷è íà âõîäå â ïîäïðîãðàììó
putc:
LDS R16, UCSR0A
sbrs R16, UDRE0
; sbis UCSR0A,UDRE0 ;îæèäàåì ïîêà îñâîáîäèòñÿ ðåãèñòð
rjmp putc ;äàííûõ ïåðåäàò÷èêà USART
sts UDR0,R16 ;ïåðåäàåì áàéò äàííûõ
ret
; Ïîäïðîãðàììà ïðèåìà áàéòà
; R16 - ïðèíÿòûé áàéò íà âûõîäå èç ïîäïðîãðàììû
getc:
LDS R16, UCSR0A
sbrs R16, RXC0
;sbis UCSR0A,RXC0 ;îæèäàåì ïîêà íå áóäåò ïðèíÿò áàéò
rjmp getc
LDS R16,UDR0 ;ïåðåíîñèì áàéò â ðàáî÷èé ðåãèñòð
ret
; Ïîäïðîãðàììà ïåðåäà÷è ñèìâîëà îøèáêè "?"
put_err:
ldi R16,$33
rcall putc
ret
id_string: ;ñòðîêà ïîäòâåðæäåíèÿ
.db "Atmega168",0
Блин неужели трудно открыть файл *.С и скопировать оттуда? Зачем такие кракозябры отправлять? Из редактора студии какая то херня копируется.
- Сообщения: 758
- Зарегистрирован: Вс фев 10, 2013 15:26:00
Херня получается из-за языка, на который переключена клавиатура в окне-источнике.


