在S3C44B0X中,每个定时器具有一个倒计时器,通过定时器时钟源驱动16位倒计时寄存器TCNTn。定时器启动前,要向定时器计数缓冲寄存器(TCNTBn)写入一个初始值,这个值在定时器启动时载入到倒计时器TCNTn中。在定时器比较缓冲寄存器(TCMPBn)中同样也要写入一个初始值,运行时用来载入到比较寄存器TCMPn中与倒计时器TCNTn的值相比较。系统启动时,需要通过置手动刷新位的方式,将TCMPBn和TCNTBn这两个缓冲区的值载入到TCMPn和TCNTn中。TCMPBn和TCNTBn这两个缓冲区的应用(即双缓冲器)使定时器能够在频率和占空比同时变化时,仍然产生一个稳定的输出。
一般启动定时器的步骤如下:
①将初始值写入到TCNTBn和TCMPBn中。
②设置对应定时器的自动重载位。
③设置对应定时器的手动更新位,反向器置为off状态。
④设置对应定时器的启动位来启动定时器,同时清除手动更新位。
此时定时器TCNTn开始倒计数,当TCNTn具有与TCMPn相同的值时,TOUTn的逻辑电平由低变高。当计数器TCNTn到达0时将产生定时器中断请求,通知CPU定时器操作已经完成。此时,如果自动重载控制位使能,TCNTBn的值会自动载入到TCNTn寄存器中,并开始下一个操作周期。如果通过清除定时器使能位等方法使定时器停止,计数值将不会自动重载。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。