вот, решил задействовать функции ввода высокого уровня, а именно scanf. сделал кольцевой буфер, в который складываются принимаемые по прерываниям из UART байты. создал стандартный поток ввода, как и нужно для реализации WinAVR, функция чтения символа возвращает _FDEV_EOF, если в кольцевом буфере "голова" совпадает с "хвостом", т.е. нет новых данных.
и вот что получается: буфер заполняется довольно медленно, а scanf пытается вычитывать данные быстро, в итоге после вычитывания первого же символа она получает EOF и, естественно, заканчивает ввод... то есть как ни крути, вводится 1 или (редко) два байта, и точка.
почему лыжи не едут?
что-то у меня не очень укладывается в голове, как организовать ввод данных так, чтобы использовать scanf и при этом не попадать в долгие ожидания поступления очередного символа...
--------------------
Я бы взял частями... но мне надо сразу.
|