USART AT Mega 8.

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

USART AT Mega 8.

Сообщение Дмитрий О »

Смотрим статью Mamonth'a:

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

while (1)
{ 
UDR = 'a';
}; 
Все замечательно, но как передать целое слово? Например INIT?
Потом. Допустим приняли слово. Проанализировали, и надо тоже слово отправить. Как? Скоро быренько слеплю модельку для этого дела, уже МАХ232 купил, т што буду екскрементировать :)
aka Diamond
Реклама
Аватара пользователя
avr123.nm.ru
Вечно гонимый
Сообщения: 331
Зарегистрирован: Пн сен 04, 2006 20:25:28
Откуда: самоучитель по микроконтроллерам
Контактная информация:

Сообщение avr123.nm.ru »

Есть подробное упражнение 5 по работе в USART -
с примерами для начинающих
forum.roboclub.ru/IPBoard/index.php?showtopic=264
Реклама
Аватара пользователя
avr123.nm.ru
Вечно гонимый
Сообщения: 331
Зарегистрирован: Пн сен 04, 2006 20:25:28
Откуда: самоучитель по микроконтроллерам
Контактная информация:

Re: статья про USART

Сообщение avr123.nm.ru »

Дмитрий О писал(а):Скоро быренько слеплю модельку для этого дела, уже МАХ232 купил, т што буду екскрементировать :)
Еще быстрей это делается в VMLAB или PROTEUS - примры идут в составе этих программ. только разбирайся да учись.
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Хм... Резонно. Хороший вопрос. Сегодня проштудирую и дам ответ. Хотя сдается мне что надо смотреть в сторону символьных массивов. Но не уверен так что до вечера. :)
Today fine night...
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Стоп, вспомнил, есть такая штука printf (там даже есть форматированый вывод). Но! Надо подключать библиотеку, а размер программы увеличивается при этом "ни по детски" ;)
UPD: и на прием scanf
Today fine night...
Реклама
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

а ссылку на статью можно?
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Реклама
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Today fine night...
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

Сообщение Дмитрий О »

Отлично. Нашел то что надо. Резонный вопрос: где взять нормальный CVAVR? В нете поискал, скачал, в одном архиве ограничения на уарт и на размер файла, в другом пароль нужен. Разумеется, пароля нигде не нашел :(
aka Diamond
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

Сообщение Дмитрий О »

Ну дык в нем и есть ограничения! Запрещает Rx Interrupt
aka Diamond
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

Сообщение Дмитрий О »

Схемку накинул :) И вот какая гадость нарисовалась: когда у меня у модема БП сгорел, я попробовал 12В от самого компа на него подать. Больше модем не работал... Потом выяснил, что в модеме накрылась та МАХ232. Я думаю: ли сей девайс через 7805 от компа питать, она не полетит?
aka Diamond
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Твой модем накрылся из-за наличия отсутствия гальванической развязки. :) СОМ-порт не имеет никакой (вообще) гальванической развязки с остальными компонентами компьютера, в частности материнской платой, а потому, могут быть проблемы.
Я сей девайс питал от отдельного блока питания и никаких проблем не было.
Today fine night...
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

Сообщение Дмитрий О »

Меня интересует, можно ли питать девай с ножки RTS т. е. не произойдет ли замыкание через МАХ232? Микруху жалко :)))
aka Diamond
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

1. Мощности не хватит при постоянной работе, только на коротенькие моменты и то если поставишь кондер.
2. Работать будет в зависимости от фазы луны, вида контроллера материнской платы и длины проводов.
3. Про замыкание - вполне возможно...
4. Кроме того, на КОМ-ПОРТЕ амплитуда +/- 12 В ( а кое-где +/- 20), а после макса 0...+5 и инверсия в добавок.
Today fine night...
Аватара пользователя
Сэр Мурр
Модератор
Сообщения: 11169
Зарегистрирован: Чт окт 27, 2005 18:50:07
Откуда: из мест не столь отдалённых

Сообщение Сэр Мурр »

Дмитрий О писал(а):Меня интересует, можно ли питать девай с ножки RTS т. е. не произойдет ли замыкание через МАХ232? Микруху жалко :)))
На старых мат. платах такое возможно при токе потребления менее 10 ма. и уровнях сигнала +-12в. На современных могут быть уровни 0-+5в ,и номер не пройдёт.
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

Сообщение Дмитрий О »

Да какой там 5В... Я по ошибке к TX компа подключил светодиод... Палец обжокъ, светодиод спалил :)))
aka Diamond
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Сэр Мурр писал(а):На современных могут быть уровни 0-+5в ,и номер не пройдёт.
Какой 0-+5?!?!? Там -12/+12, это стандарт!
Today fine night...
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

Сообщение Дмитрий О »

Ой, еще вот такой вопрос. Есть код:

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

// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
   {
   rx_buffer[rx_wr_index]=data;
   if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
   if (++rx_counter == RX_BUFFER_SIZE)
      {
      rx_counter=0;
      rx_buffer_overflow=1;
      };
   };
}
Я в Си не силен, и поэтому осмелюсь спосить, а куда нужно впихнуть код обработки прерывания?
aka Diamond
Аватара пользователя
Mamonth
Вымогатель припоя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

Дмитрий О писал(а):Ой, еще вот такой вопрос. Есть код:

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

      rx_buffer_overflow=1;
      };
   };
Вот здесь....
}
Я в Си не силен, и поэтому осмелюсь спосить, а куда нужно впихнуть код обработки прерывания?
Ес-но подразумеваем что тебе нужна обработка именно этого прерывания ;)
Today fine night...
Аватара пользователя
Дмитрий О
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пн авг 29, 2005 16:27:04
Откуда: Дмитров
Контактная информация:

Сообщение Дмитрий О »

Спасибо!
aka Diamond
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

Ребят. Можно я вмешаюсь как типа Мудрый старец?
Если пишем под WinAVR

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

#include <stdio>

    static int uart_putchar(char c, FILE *stream);

    static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL,
                                             _FDEV_SETUP_WRITE);

    static int
    uart_putchar(char c, FILE *stream)
    {

      if (c == '\n')
        uart_putchar('\r', stream);
      loop_until_bit_is_set(UCSRA, UDRE);
      UDR = c;
      return 0;
    }

    int
    main(void)
    {
      init_uart();
      stdout = &mystdout;
      printf("Hello, world!\n");

      return 0;
    }
Но опять же не забываем про размер кода. Но иногда очень помогает.
Ответить

Вернуться в «Статьи»