Отключить прерывание по Таймеру1

Подскажите как остановить прерывание по таймеру?

Данный код не принес успеха.

    noInterrupts();                       // отключаем все прерывания
    TIMSK1 |= (0 << TOIE1);               
    interrupts(); 

Неудивительно, ибо дизъюнкция:

HXwkwKHFtNOKoAAAAAElFTkSuQmCC

А нужна конъюнкция:

1_!

1 лайк

Видимо, имеется в виду ATmega328??? Неплохо было бы это указать.

Если так, то надо прописать 0 в бит TOIE1 регистра TIMSK1

А с чего ему приносить успех, если он ничего не делает. Т.е. этот код не делает ровным счётом ни-че-го! Он оставляет всё, как есть.

Если Вам нужно прописать куда-то 0, то это делается операцией И (а не ИЛИ, как у Вас) с инвертированной маской

    TIMSK1 &= ~(1 << TOIE1);               
1 лайк