Биты в некоторых регистрах специальных функций сбрасываются в ноль путем записи в них единицы. Как следует поступать для достижения оптимального результата? После прочтения FAQ №1 можно предположить, что следует поступить так (для примера возьмем регистр флагов запросов прерывания таймеров TIFR):
TIFR |= _BV(TOIE1); // сброс флага TOIE1
Однако такой вариант приведет к избыточному коду, двоичное ИЛИ требуется лишь для тех случаев, когда надо ИЗМЕНИТЬ значение одного бита, НЕ ЗАТРОНУВ остальные. В случае с TIFR запись нулевых битов никак не повлияет на содержимое регистра, поэтому следует поступать просто, без всяких битовых операций: