8、定时器核心寄存器(TCNT)
寄存器偏移量:$0004-$0005
Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 |
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
TCNT 是递增计数器,它不停地对内部时钟信号计数、程序可随时读取,但在普通模式下禁止写入。TCNT 应按字访问,分别访问高、低字节可能得到错误的结果。
【说明】在特殊模式下,TCNT 可写,但因为写操作与预分频器时钟不同步,TCNT寄存器写入后,其第一个周期可能是一个不同的值。
9、输出比较通道 7 屏蔽寄存器(OC7M)
寄存器偏移量$0002
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
OC7M7 | OC7M6 | OC7M5 | OC7M4 | OC7M3 | OC7M2 | OC7M1 | OC7M0 |
可在任何时候读或写。
前面已经说明,OC7 具有特殊地位,它匹配时可以直接改变其他 7 个输出引脚的状态,并覆盖各个引脚原来的匹配动作结果,寄存器 OC7M 决定哪些通道将处于 OC7 的管理之下。OC7M 中的各位与 PORTT 口寄存器的各位一一对应。当通过 TIOS 将某个通道设定为输出比较时,将 OC7M 中的相应位置 1,对应的引脚就是输出状态,与 DDR 中的对应位的状态无关。但 OC7Mn 并不改变 DDR 相应位的状态。
OC7M 具有更高的优先级,它优于通过 TCTL1 和 TCTL2 寄存器中的 OMn 和 OLn 设定的引脚动作,若 OC7M 中某个位置 1,就会阻止相应引脚上由 OM 和 OL 设定的动作。
10、输出比较通道 7 数据寄存器(OC7D)
寄存器偏移量:$0003
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
OC7D7 | OC7D6 | OC7D5 | OC7D4 | OC7D3 | OC7D2 | OC7D1 | OC7D0 |
可在任何时候读或写。
OC7M 对于其他 OC 输出引脚的管理限于将某个二进制值送到对应引脚,这个值保存在寄存器 OC7D 中的对应位中。当 OC7 匹配成功后,若某个 OC7Mn=1, 则内部逻辑将 OC7Dn 送到对应引脚。
OC7D 中的各位与 PORTT 口寄存器的各位一一对应。当通道 7 比较成功时,如果 OC7M 中的某个位为 1,OC7D 中的对应位将被输出到 PORTT 的对应引脚。 当 OC7M 中的某个位为 1 时,通道 7 匹配成功的动作如果与通道 6-0 的动作发生在同一个周期,前者将覆盖后者。因此各个通道的动作将依赖于 OC7D中各个位的设置。