Цитата(andrewlekar @ Dec 29 2011, 08:02)

Я 3 раза перечитал, но так и не понял сути вопроса.
Потому я такие вопросы и задаю, что новичок как в С++, так и в программировании контроллеров. Занимаюсь ими месяцев 8-9, периодически отрываясь от основной работы.
Цитата
Ну если начальство сказало, что надо, то преобразовывайте.
Начальство тут не при чём, тут дело в непонимании.
Мой алгоритм примерно выглядит так:
CODE
while (!Character==32)
{
while ( ! (USART1->SR & USART_SR_RXNE) ) ; // ждать, пока символ не получен
{
CharNum++;
if (CharNum==1)
{
USART1->SR &=~ USART_SR_RXNE;} // пропустить 1-ый символ
if (CharNum==3)
{
Character = (USART1->DR & 0x1FF ) ;} // считать 2-ой символ
.....
Получается, что я каждый символ должен посчитать, а их 32, через оператор if.
Цитата
Следующий этап - синтаксический анализ. В этом случае он тривиален, из входного потока лексем просто лишние выбрасываются, нужные сохраняются.
Цитата
Делаю я это так: считываю байт, если приёмник не пуст, повторяю в цикле.
Вот я и спрашиваю, как это сделать (на уровне кода)? можно ли это упростить с помощью языка? А не использовать для этого 60 строчек кода.