定时器计数缓存寄存器(TCNTBn)是作为定时器归零后,重新计数的初始值。而如果要读取定时器的值,则可以通过TCNTOn寄存器,所以TCNTBn寄存器不是当前的值。
当设定了自动重载,TCNTOn等于零时,定时器就会把TCNTBn的值重载到TCNTOn,并产生一个时间中断。所以S3C240X的PWN定时器是具有双缓存功能的。
当设置了反转位,定时器趋零寄存器(TCNTOn)等于定时器比较缓存寄存器(TCMPBn)时,电平反转。
定时器的启动,除了设置频率外,有三步需要做:
1、向TCNTBn和TCMPBn写入初始值。
2、置位相应定时器的手动更新位,不管是否使用反转功能,推荐设置反转位
3、置位相应定时器的启动位,启动定时器,清除手动更新位。
说明:手动更新位这个比较难理解,其实在写入TCNTBn初始值时,TCNTOn并没有赋值,这时必需手动给其赋值,然后在启动时,如果需要自动重载的,则需要清除手动更新位,如果不清除,而需要重载的,则需要在中断里自己给其手动复制。