[an error occurred while processing this directive]
Нужен Ваш help по приему потока из UART на AVR:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
gsm 05 сентября 2006 г. 15:56
|
|
|
|
Нарыл функцию приема байта, функция на прерывании, а вот как правильно поток (строку) принять?
Пробовал в этой функции бить в массив, увеличивая индекс, но где гарантия, что я в процессе его очистки не получу еще порцию на прерывании и все пойдет на перекосяк? ... как правильно забодяжить?
p.s. C++ давно не юзал, что-то в книжках не нашел таблицы printf/sprintf- та, что типа "%S" или "%D" может подкините?
Составить ответ
|||
Конференция
|||
Архив
Ответы
- смотря для чего: если для ModBus то перекосяк не получиться, так как по таймауту, Slave отключает свой приёмник, собирает пакет и передает, а потом снова включает приемник — MegaJohn (05.09.2006 16:00 82.140.84.195, пустое)
- Ответ: хм, а если самопал? так в прерывании бить в массив - это правильно? — gsm (05.09.2006 16:02 81.211.33.9, пустое)
- Правильно. Только на время "доставания" из массива (очереди) в основной программе прерывания запрещать. — SM (05.09.2006 16:05 195.225.131.186, пустое)
- А что будет, если при отключенных на время прерываниях поступит в порт информация? Она будет утрачена? — gsm (05.09.2006 17:05 81.211.33.9, пустое)
- Ответ: Спасибо, а где бы нарыть описание простых функций winavr типа chr , int, substr и т.п. или в нет нет подобного вообще? — gsm (05.09.2006 16:17 81.211.33.9, пустое)
- Что то вы путаете, это что же за фукция такая int ?! =) — MegaJohn (05.09.2006 16:29 82.140.84.195, пустое)
- какая нужна ? abort.c, frmrd.c, frmwri.c, getchar.c, intwri.c, printf.c, putchar.c, scanf.c, sprintf.c, vprintf.c, vsprintf.c — MegaJohn (05.09.2006 16:36 82.140.84.195, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание