1. Возможно ли в с кольцевым буфером работать по битам? Или мне нужно при приеме накопить сначала восемь бит и только потом отправить их в буфер? Если нужна переменная, то как это сделать? Просто две переменный сделать (одну под счетчик, другую под биты) и после записи если счетчик равен восьми, то обнуляю счетчик и байт отправить в кольцевой?
2. Если не ошибаюсь, то чтение из буфера занимает не один такт. Что будет если посреди чтения сработает прерывание и в этом прерывании начнется процедура записи? Могут ли так потеряться, исказиться или остаться необработанными данные в буфере? Может нужно сделать флаг, который запретит записывать в буфер, пока идет процедура чтения? Или потеря данных таки образом исключена?
Ну и вообще подход правильный? Может советы какие есть. Свой протокол делаю что бы просто научится. В основном интересует
только правильная организация буфера (физический уровень протокола и процедура обработки пакетов - это другой вопрос), поскольку и чтение и запись могут начаться в абсолютно любой момент (даже одновременно), а организовать желательно так, что бы я ничего не потерял (ну не считая переполнения буфера конечно же).

