roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 20:27

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: USART помогите разобраться
СообщениеДобавлено: 24 мар 2011, 22:58 
Не в сети
Аватара пользователя

Зарегистрирован: 10 фев 2011, 22:35
Сообщения: 22
Доброго времени суток.
Пытаюсь передать циферки с ПК (программа Terminal 1.91) на МК (Tiny2313) по USART.
Воспользовался мастером начального кода CVAVR. Так как передавать обратно ничего не надо настроил только приемник.
Включил прерывания и настроил скорость передачи 1200 бод.
Сделал шнурок на макс232.(проверил шнурок рабочий)
Вопрос в том откуда правильно считывать данные пришедшие на RXD?
Согласно даташита, кучи статей и курса AVR123 это регистр данных UDR.
Т.е. если я правильно понял, достаточно инициализировать УСАРТ и

switch (UDR)
{
case 1: PORTB.3=1; break;
case 2: PORTB.4=1; break;
case 3: PORTB.5=1; break;
case 4: PORTB.6=1; break;
}

Если я отправлю символ "1" с ПК то PORTB.3=1; Однако такое у меня не заработало.

Попробовал включить прерывания RX и использовать ф-цию getchar();

char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
unsigned char n;
n = getchar();
switch (n)
{
case 1: PORTB.3=1; break;
...
case 4: PORTB.6=1; break;
}
Тоже не работает. Подскажите кому не лень плиз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART помогите разобраться
СообщениеДобавлено: 24 мар 2011, 23:09 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
eugmai86 писал(а):
Если я отправлю символ "1" с ПК то PORTB.3=1; Однако такое у меня не заработало.

И правильно не заработало. С ПК через терминал идёт не цифра "1", а её код 0х31.
http://netcode.ru/cpp/?lang=&katID=2&skatID=20&artID=234

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART помогите разобраться
СообщениеДобавлено: 24 мар 2011, 23:24 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
eugmai86 писал(а):
Воспользовался мастером начального кода CVAVR. Так как передавать обратно ничего не надо настроил только приемник.
Включил прерывания и настроил скорость передачи 1200 бод.


Смотрите задачу 5 курса - http://www.proavr.narod.ru/z5.htm , и настройте буфер приема. Советую отлаживать в PROTEUS.

Примеры приема команд от ПК есть в задаче 13 про управление серво контроллером с ПК. http://www.proavr.narod.ru/z13.htm

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART помогите разобраться
СообщениеДобавлено: 25 мар 2011, 00:39 
Не в сети
Аватара пользователя

Зарегистрирован: 10 фев 2011, 22:35
Сообщения: 22
Спасибо, т.е. нужно отправлять 0х31 или 49 я правильно понял?
ТО АВР123 задачу 5 смотрел. спасибо, только протеус мне не очень нравится, проще на макетке налаживать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART помогите разобраться
СообщениеДобавлено: 25 мар 2011, 11:51 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
С терминала уже отправляется 0x31. В switch нужно писать или case 0x31, или, что более читаемо, case '1'.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART помогите разобраться
СообщениеДобавлено: 26 мар 2011, 14:24 
Не в сети
Аватара пользователя

Зарегистрирован: 10 фев 2011, 22:35
Сообщения: 22
Все заработало, спасибо


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 29


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO