在配置定时器使用了如下语句:
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
不禁疑问:这与TMOD=0x20有什么区别呢? 不都是把0x20给TMOD吗?
NO。当只需要改变TMOD中的某一位时,就用 |=,如果直接用 = 赋值,会导致TMOD其它位被改变。
如,TMOD=0x20就使除了位5为1,别的位都为0了,这在程序中可不是我想看到的。
在配置定时器使用了如下语句:
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
不禁疑问:这与TMOD=0x20有什么区别呢? 不都是把0x20给TMOD吗?
NO。当只需要改变TMOD中的某一位时,就用 |=,如果直接用 = 赋值,会导致TMOD其它位被改变。
如,TMOD=0x20就使除了位5为1,别的位都为0了,这在程序中可不是我想看到的。