|
Шпак передача данных по USART |
|
|
|
Aug 22 2011, 05:29
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 18-08-11
Пользователь №: 66 777

|
программа такая: Код #include <avr/io.h> #include <avr/interrupt.h> //Для доступа к функции sei() #include <avr/signal.h> //Для доступа к макросу INTERRUPT //Определяем одиннадцать выводимых строк (последняя - на тот случай, если был принят не цифровой символ)
char str0[] = "Zero"; char strl[] = "One"; char str2[] = "Two"; char str3[] = "Three"; char str4[] = "Four"; char str5[] = "Five"; char str6[] = "Six"; char str7[] = "Seven"; char str8[] = "Eight"; char str9[] = "Nine"; char strDefault[] = "Not digit"; unsigned char queueC, sendC; //Индексы текущего и переданного символа unsigned char queue[50]; //Очередь
ISR(USART0_TX_vect) //Подпрограмма обработки прерывания при завершении передачи очередного символа. { //Если был передан не последний символ, то передаем текущий и увеличиваем счетчик переданных данных на 1 if (queueC != sendC) UDR = queue[sendC++]; }
//Функция формирования очереди символов из строки void SendStr(char *s) { queueC =0; //Текущий символ - первый sendC = 1; //Первый символ считаем уже переданным queue[queueC++] = 0x0D; //Добавляем в конец очереди символы queue[queueC++] = 0x0A; // возврата каретки и переноса строки. Просматриваем строку и помещаем в очередь символы. while (*s) queue[queueC++] = *s++; UDR = queue[0]; //Передаем первый символ, чтобы начать процесс }
int main (void){ char с; UCR = 0x58; UBRR = 0x33; sei(); //Общее разрешение прерываний while(1) //Бесконечный цикл { if (UCR & 0x80) //Если UART принял символ от ПК,... { с = UDR; switch (с) //Анализируем символ и выводим соответствующую { //строку через UART case '0': SendStr(str0); break; case '1': SendStr(strl); break; case '2': SendStr(str2); break; case '3': SendStr(str3); break; case '4': SendStr(str4); break; case '5': SendStr(str5); break; case '6': SendStr(str6); break; case '7': SendStr(str7); break; case '8': SendStr(str8); break; case '9': SendStr (str9); break; default: SendStr(strDefault); } } } } лог ошибок такой: Цитата > "make.exe" all
-------- begin -------- avr-gcc (WinAVR 20100110) 4.3.3 Copyright © 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: test3.c avr-gcc -c -mmcu=atmega16a -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./test3.lst -std=gnu99 -MMD -MP -MF .dep/test3.o.d test3.c -o test3.o In file included from test3.c:3: c:/winavr/lib/gcc/../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." test3.c:20: warning: 'USART0_TX_vect' appears to be a misspelled signal handler test3.c: In function 'main': test3.c:37: error: stray '\361' in program test3.c:37: warning: useless type name in empty declaration test3.c:38: error: 'UCR' undeclared (first use in this function) test3.c:38: error: (Each undeclared identifier is reported only once test3.c:38: error: for each function it appears in.) test3.c:39: error: 'UBRR' undeclared (first use in this function) test3.c:45: error: stray '\361' in program test3.c:45: error: expected expression before '=' token test3.c:46: error: stray '\361' in program test3.c:46: error: expected expression before ')' token make.exe: *** [test3.o] Error 1
> Process Exit Code: 2 > Time Taken: 00:01 вот например Цитата test3.c:37: error: stray '\361' in program Код char с; что тут не так?
|
|
|
|
|
 |
Ответов
|
Aug 29 2011, 09:11
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 18-08-11
Пользователь №: 66 777

|
Цитата(Vasily_ @ Aug 29 2011, 13:06)  Осциллом надо измерять а не вольтметром, хотя не известно что вы хотели там увидеть. что не известно? в даташите рядом написано 8.5 В должно быть
|
|
|
|
Сообщений в этой теме
zeonix0 Шпак передача данных по USART Aug 22 2011, 05:29 777777 Вместо 'с' напиши 'c' )
У тебя пе... Aug 22 2011, 05:52 zeonix0 аЦитата38: error: 'UCR' undeclared (first ... Aug 22 2011, 05:57 777777 UCR undeclared скорее всего означает, что проект т... Aug 22 2011, 06:03 zeonix0 makefile выложить? atmega16a там все есть. Aug 22 2011, 06:08 777777 Цитата(zeonix0 @ Aug 22 2011, 10:08) make... Aug 22 2011, 06:24 Genadi Zawidowski В атмеге 16 UCSRA, например.
И
ISR(USART_TXC_vect)... Aug 22 2011, 06:40 zeonix0 Цитата(Genadi Zawidowski @ Aug 22 2011, 10... Aug 22 2011, 09:19  Genadi Zawidowski Цитатавроде скомпилился норм... но правильно ли эт... Aug 22 2011, 09:58 777777 А что такое "шпак"? Aug 22 2011, 06:55 Genadi Zawidowski Цитата(777777 @ Aug 22 2011, 10:55) А что... Aug 22 2011, 06:59 zeonix0 шпак это мужик который написал проги для МК, котор... Aug 22 2011, 07:03 777777 Цитата(zeonix0 @ Aug 22 2011, 11:03) шпак... Aug 22 2011, 07:05  ILYAUL Де жавю
Цитата'Aug 18 2011, 15:15' post... Aug 22 2011, 07:40 zeonix0 меня прикалывает шпак просто...
Может кто посовет... Aug 22 2011, 07:47 zeonix0 ген , спасибо. Попробую Aug 22 2011, 12:12 Genadi Zawidowski Цитата(zeonix0 @ Aug 22 2011, 16:12) ген ... Aug 29 2011, 15:28 zeonix0 RE: Шпак передача данных по USART Aug 29 2011, 07:07 777777 Цитата(zeonix0 @ Aug 29 2011, 11:07) Кодc... Aug 29 2011, 07:44 zeonix0 какая разница этого в контексте данного топика? ну... Aug 29 2011, 08:56 GDI Если вместо -8.5В меяется +6.48В, то однозначно до... Aug 29 2011, 12:31 zeonix0 похоже что макс действительно сдох, заменил его на... Aug 30 2011, 12:20 aba Похоже что то напутано со скоростями. Вы уверены, ... Aug 30 2011, 12:28 zeonix0 CODE##############################################... Aug 30 2011, 12:33 aba У вас есть срока ЦитатаCFLAGS += -Wall -gdwarf-2 -... Aug 30 2011, 12:43 zeonix0 на кварце написано 16 ... бррр из-за этого что ли ... Aug 30 2011, 12:44 aba 1 - в мэйк файле измените значение F_CPU=8000000UL... Aug 30 2011, 13:11 IgorKossak Господа, научитесь оформлять длинные коды в тэги c... Aug 30 2011, 17:59 zeonix0 IgorKossak, это какая кнопочка?
aba, ничего не из... Aug 31 2011, 06:23 IgorKossak Цитата(zeonix0 @ Aug 31 2011, 09:23) Igor... Aug 31 2011, 07:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|