OR符号和位移为什么=符号为什么1

时间:2017-12-20 23:44:50

标签: c

我是C的新手。有人可以告诉我这些说明是怎样的,这些说明来自Arduino中Atmel的示例代码设置定时器中断

  TCCR2A |= (1 << WGM21);
  // Set CS21 bit for 8 prescaler
  TCCR2B |= (1 << CS21);   
  // enable timer compare interrupt
  TIMSK2 |= (1 << OCIE2A);

感谢。

1 个答案:

答案 0 :(得分:1)

"type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } } 是一个注册。像TCCR2A这样的东西。 00100001是一个数字。例如3。

WGM21这会将1换成3((1 << WGM21))个位置。 所以这个结果是WGM21

现在我们有:00000100 结果是:TCCR2A |= 00000100;

如果TCCR2A = TCCR2A | 00000100;的实际状态为TCCR2A 它看起来像这样:00100001

现在答案是TCCR2A = 00100001 | 00000100;