与 PIC18 关联的一些 SFR 可以通过组合来构成多字节值,例如,TMRxH 和 TMRxL 寄存器可以组合构成 16 位定时器计数值。根据器件和工作模式,可能会存在以某些特定方式读取这些寄存器的硬件要求,例如通常必须先读取 TMRxL 寄存器,然后再尝试读取 TMRxH 寄存器,才能获取有效的 16 位结果。
所以遇到这个情况一定要先读取低8位,再读取高8位,你知道这是为什么吗?
我猜啊,应该是这个寄存器变量一直在更新,如果你先读取高八位,在读取的这个过程中低八位已经更新了,不能读取到精准的当时的那个值了。
|