Я вот чет притормозил... А зачем вообще необходима атомарность в BUFF[lowByte(CWB)] = SBb; ?
В прерывании вообще нет обращения к CWB, его модификация не происходит (где-то в другом месте кода), ну разорвётся эта запись на прерывание, и чем это грозит? (если не считать, случай когда CRB догнал CWB...), Но опять-же, индекс CWB ведь не изменяется до окончания записи в буфер, значит и проблемы не должно быть...




Ответить с цитированием
