我正在初始化Atmega328中溢出中断的寄存器。
我首先从以下初始化开始,但是没有用。
TCCR1B |= 0x05;
TIMSK1 |= 0x01;
然后我尝试了以下代码:
TCCR1B = (TCCR1B & B11111000) | 0x05;
TIMSK1 = (TIMSK1 & B11111110) | 0x01;
前两行代码未调用ISR,但后两行代码已调用! 怎么样?
答案 0 :(得分:0)
这两个代码不相等。假设TCCR1B
的初始值为0xFF
TCCR1B |= 0x05; // this will result in a value of `0xFF`.
TCCR1B = (TCCR1B & B11111000) | 0x05; // This will result in a value of '0xFD'