SN8P2808
8-bit micro-controller build-in 4*32 LCD and 12-bit ADC.
8.3.5 TC0R 自动装载寄存器
TC0 的自动重装功能由TC0M 的ALOAD0 位控制。当TC0C 溢出时,TC0R 的值自动装入TC0C 中。这样,用户在
使用的过程中就不需要在中断中复位TC0C。
TC0 为双重缓存器结构。若程序对TC0R 进行了修改,那么修改后的TC0R 值首先被暂存在TC0R 的第一个缓存器
中,TC0 溢出后,TC0R 的新值就会被存入TC0R 缓存器中,从而避免TC0 中断时间出错以及PWM 和蜂鸣器误动作。
注:在PWM 模式下,系统自动开启重装功能,ALOAD0 用于控制溢出范围。
注:TC0 将系统从绿色模式唤醒后,TC0R 的值不会由硬件装入TC0C。即如果使用TC0 自动装载功能,系统由TC0 从绿色模
式下后,需由软件将TC0R 的值装入TC0C。
0CDH
TC0R
读/写
Bit 7
TC0R7
W
Bit 6
TC0R6
W
Bit 5
TC0R5
W
Bit 4
TC0R4
W
Bit 3
TC0R3
W
Bit 2
TC0R2
W
Bit 1
TC0R1
W
Bit 0
TC0R0
W
0
0
0
0
0
0
0
0
复位后
TC0R 初始值计算公式如下:
TC0R 初始值 = N -(TC0 中断间隔时间 * 输入时钟)
N 是TC0 最大溢出值。TC0 的溢出时间和有效值见下表:
TC0CKS
TC0X8
PWM0 ALOAD0 TC0OUT
TC0R 有效值
00H~0FFH
00H~0FFH
00H~3FH
00H~1FH
00H~0FH
00H~0FFH
00H~0FFH
00H~3FH
00H~1FH
00H~0FH
00H~0FFH
TC0R 二进制有效范围
00000000b~11111111b
00000000b~11111111b
xx000000b~xx111111b
xxx00000b~xxx11111b
xxxx0000b~xxxx1111b
00000000b~11111111b
00000000b~11111111b
xx000000b~xx111111b
xxx00000b~xxx11111b
xxxx0000b~xxxx1111b
00000000b~11111111b
N
256
256
64
32
16
256
256
64
32
16
0
1
1
1
1
0
1
1
1
1
-
x
0
0
1
1
x
0
0
1
1
-
x
0
1
0
1
x
0
1
0
1
-
0
(Fcpu/2~
Fcpu/256)
0
1
1
(Fosc/1~
Fosc/128)
-
256
¾
例:TC0 中断间隔时间设置为10ms,时钟源选Fcpu(TC0KS=0,TC0X8 = 0),无PWM 输出(PWM0=0),
高速时钟为外部4MHz,Fcpu=Fosc/4,TC0RATE=010(Fcpu/64)。
TC0R = N -(TC0 中断间隔时间 * 输入时钟)
(
)
)
= 256 - 10ms * 4MHz / 4 / 64
-2
6
(
= 256 - 10 * 4 * 10 / 4 / 64
= 100
= 64H
SONiX TECHNOLOGY CO., LTD
Page 76
Version 1.1