Master писал(а):
Так сделай прерывание... или опрашивай 10 раз в сек...
Прерывание, это один из возможных вариантов, но в моем случае он годится только для части команд, того же перехода к другому режиму например.
В начале моей программе необходимо вывести устройство в начало координат. Кнопками оно выводится так - пока жму "Влево" движется влево, пока "Вправо" - вправо. Вывел и ... "Поехали" - система начала барабанить в авто-режиме пока я ее не опрокинул "Стоп"-ом.
Вот эти команды вправо-влево-вверх-вниз должны выполняться и командами удаленного управления, т.е. пока поступают символы - движение, перстали поступать - стоим, ждем-с...
Если сделать их через предложенную CVAR функцию с прерыванием, то будет выполнено столько шагов, сколько (в штуках))) было получено символов.... неудобно
Оттого-то и вся морока с зависшим в UDR0 символом который не дает системе перейти к следующему действию.
Добавлено спустя 8 минут 26 секунд:avr123.nm.ru писал(а):
прерывания и буфера приема конфигурирует мастер CVAVR
Насколько я понял из того, что мне сконфигурировал мастер-CVAVR, до поступления символа в UDR0, прог-а будет "молотить" в закрытом цикле откликаясь только на прерывания. Это не есть хорошо. Удобнее если вместо While(пока нет символа) у меня будет стоять if(если пришел символ){делай то-то;}
Ведь команды приходят время от времени, а про-га молотит постоянно, зачем ей постоянно ждать в While(пока нет символа)?