pwm计时器

1 PWM timer定时器与(watchdog差不多)
2 5个16位的定时器,独立的,其中,NO PIN 没有输出。16表示ffff,和ADC中10表示3FF一样。而寄存器都是32位。(以后6410可能变)
3 12 M进行了进行了两次分频,一次预分频,一次分频
公式计时器的频率=PCLK/(预值+1)/分频值
预值0~255,分值2,4,8,16
4 寄存器
TCFG0 15~8 2,3,4
TCFG1 7~0 0,1(选定时器)
5 TCON 22 (0对应手动,1对应自动,自动意思是可以执行多次,手动意思只能执行1次)
21
20
21和20互斥 手动:
TIMER.TCON=((~0X7<<20))&TIMER.TCON)|(0X2<<20);
TIMER.TCON=((~0X7<<20))&TIMER.TCON)|(0X1<<20);

执行结果
haha
haha
haha
doirq(只出现一次)
haha
haha
haha
haha
haha
haha
自动:
TIMER.TCON=((~0X7<<20))&TIMER.TCON)|(0X6<<20);
TIMER.TCON=((~0X7<<20))&TIMER.TCON)|(0X5<<20);
执行的结果表示
haha
haha
haha
doirq(能一直循环出现)
haha
haha
haha
doirq
haha
haha
haha
doirq
haha
haha
6 TCNTB4=0X6000;(往里边放一个数,然后count buf开始递减)
计算
12000000/(255+1)/16=2930;这里的分频设置是最小的)
6000/2930=8秒钟(只需要8秒钟递减完成)
7 注意TCNT不是一个寄存器,而他的作用是,把值放到down counter,相当于一个双缓冲,这个TCNT值=TCNB里边设置的,但是他不能直接设置。
TCNTB才是寄存器,他用来设置。

原文地址:https://www.cnblogs.com/coding4/p/5604766.html