[an error occurred while processing this directive]
|
слишком смело делать так:
uint8_t sreg = SREG;
...
SREG = sreg;
По мимо флага I в SREG еще есть другие флаги, которые, скорее всего, изменяются..
вот так было бы правильнее
uint8_t sreg = SREG;
...
SREG |= sreg&(1<<7);
Да и еще неплохобы проверять флаги FE и DOR в перывании приема.
E-mail: info@telesys.ru