Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ответ: Вобщем, фильтр из прерывания убрал, оставил только отслеживание размера буфера и проверку на символ 0xA

Отправлено dshabrov (84.21.231.242) 12 апреля 2010, г. 15:19
В ответ на: Не люблю нелогичные вещи. Принял конец строки - запретил прием - обработал - разрешил прием. Это логично. К тому же если делать иначе в буфере UDR будет мусор. отправлено dshabrov 12 апреля 2010, г. 14:57



interrupt [12] void usart_rx(void) { //Прерывание по приему
unsigned char temp; //
temp = UDR; //Принять симвввол
{RSVbuf[RSVCntr] = temp; RSVCntr++; } //Записать принятый символ в буфер
if (temp==0xA|RSVCntr > 10) {RSV = 1; RSVCntr = 0;} //Если принят 0xA или больше 10 символов, начать обработку
}


Запрещения приема пока нет.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 97:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru