TIME1 定时器1是10位的(并且是向下计数就是重载值--到零重载)
PCON
(
Power
寄存器)可以理解为工作寄存器
第5位 :LVREN:开启
/
关闭
LVR
。
低压复位
LVREN=1 时,开启
LVR
。
LVREN=0 时,关闭
LVR
。
第6位 :/PHPA5:关闭
/
开启
PA5
上拉电阻
。
/PHPA5=1 时,关闭
PA5
上拉电阻。
/PHPA5=0 时,开启
PA5
上拉电阻。
第7位 :LVDEN:开启
/
关闭
LVD
。
低压检测
LVDEN=1 时,开启
LVD
。
LVDEN=0 时,关闭
LVD
。
第8位 :WDTEN
:开启
/
关闭
WDT
。看门狗
WDTEN=1 时,开启
WDT
。
WDTEN=0 时,关闭
WDT
。
TMRH
(定时器
1/2
高字节寄存器)和PWM占空比10位的高2位
6(8)和7(9)TMR2 9~8:定时器
2
高
2
位。
读取这
2
位将得到定时器
2
第
9
位与第
8
位目前计数值。
4(8)和5(9)TMR1 9~8:定时器
1
高
2
位
读取这
2
位将得到定时器
1
第
9
位与第
8
位目前计数值。
2(8)和3(9)PWM2DUTY9~8:
PWM2
占空比高
2
位。
0(8)和1(9) PWM1DUTY9~8
:
PWM1
占空比高
2
位。
PWM1DUTY
(
PWM1
占空比寄存器)
定时器
1
重新加载的数值储存在
TMRH[5:4]
与
TMR1[7:0]
寄存器,以用来定义
PWM1
帧率,
TMRH[1:0]
与
PWM1DUTY[7:0]
寄存器用于定义
PWM1
的占空比。
设置 占空比 和 定时器1 的 重载值
TMR1
(定时器
1
寄存器)
当读取
TMR1
寄存器时,会得到
10
位定时器
1
中的低8位字节目前计数值。
写
TMR1
时,会将
TMRH[5:4]
和 TMR1[7:0]一起写到定时器
1
重载寄存器中。
T1CR1
(定时器
1
控制寄存器
1)配置定时器1的模式
第1位 T1EN
:开启
/
关闭定时器
1
。
T1EN=1
时,开启定时器
1
。 T1EN=0 时,关闭定时器
1
。
第2-3位
T1OS T1RL
01时
定时器
1
从重载的数值下数到
0x00
。
当下溢发生,定时器
1
从
TMR1[9:0]
重新载入数值并继续下数
第6位 PWM1OAL
:定义
PWM1
输出有效状态。
PWM1OAL=1
时,
PWM1
为低电平有效位输出。
PWM1OAL=0
时,
PWM1
为高电平有效位输出。
第 7 位 PWM1OEN:开启
/
关闭
PWM1
输出。
PWM1OEN=1
,
PB3
输出
PWM1
。
PWM1OEN=0
,
PB3
为
GPIO
。
T1CR2
(定时器
1
控制寄存器
2
) 配置定时器1时钟
第六位
T1CS
:定时器
1
时钟源选项。
T1CS=1
时,选择
EX_CKI0
脚作为外部时钟输入。
T1CS=0
时,选择指令时钟
F
INST
。
第5位
T1CE
:定时器
1
外部时钟触发沿选项。不用外部晶振不需要考虑
T1CE=1
时,
EX_CKI0
脚下降沿时定时器
1
减一。
T1CE=0
时,
EX_CKI0
脚上升沿时定时器
1
减一。
第4位
/PS1EN
:关闭
/
开启预除器
1
。使能预分器
低3位 2 1 0三位
选择预分频 000 001 。。。。。。
2 4 8.。。。
代码
//配置高位占空比PWM1,time1
TMRH = 0x33//都为1
//配置低位定时器1和PWM1
TMR1 = 0xff ;//向下计数
PWM2DUTY = 0xff; //全部为1
//配置定时器的时间源
T1CR2 = 0x08 ;//关闭预分频器
//配置PWM的模式
T1CR1 = 0x83 ; 1000 0011 对上面的详解