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中各个位的设置。