定时器

第7章 定时器

1、定时器或计数器的逻辑电路本质是一样的,都是通过当前寄存器中的值加1或减1实现。

2、定时器与计数器的区别在于:在应用中,定时器是对内部周期性信号进行计数,从而获得一段间隔的时间;而计数器一般是对外部事件产生的信号进行计数

 3、S5PV210提供了5个16位的Timer(Timer0~Timer4),其中Timer0~Timer3支持Pulse WidthModulation— PWM(脉宽调制)。Timer4是一个内部定时器(internal timer),没有输出引脚(output pins)。

 4、PWM定时器相关寄存器

         TCFG0:配置预分频器;    TCFG1:配置分割器;

         TCON:控制寄存器;       TCNTBn:计数缓冲寄存器;

         TCMPBn:比较缓冲寄存器;TCNTOn:计数观察寄存器。

5、S3C2410定时器的双缓冲机制,及利用双缓冲机制实现脉宽调制的方法。

PWM双缓冲定时器工作流程


1)程序开始,设置TCMPBn、TCNTBn这两个寄存器,表示定时器n的比较值、初始计数值。

2)设置TCON寄存器启动定时器n,这时TCMPBn、TCNTBn的值将被装入内部寄存器TCMPn、TCNTn中,在定时器n的时钟频率下,TCNTn开始减1计数,其值可以通过读取TCNTON寄存器得知。

3)当TCNTn的值等于TCMPn的值时,定时器n的输出管脚TOUTn反转,TCNTn继续减1计数。

4)当TCNTn的值到达0时,其输出管脚TOUTn再次反转,并触发定时器n的中断。

5)当TCNTn的值到达0时,如果在TCON寄存器中将定时器n设置为自动加载,则TCMPBn和TCNTBn寄存器的值被自动装入TCMPn和TCNTn寄存器中,下一次计数流程开始。

       要完成如图所示的简单的PWM循环,其步骤为:

l  使用159(50+109)初始化TCNTBn寄存器,用109初始化TCMPBn。

l  启动定时器,设置开始位并手动将该位更新至关闭状态。159的TCNTBn值会被载入减法计数器,109的TCMPBn值会被载入比较计数器,然后TOUTn输出置为低电平。

l  减法计数器开始进行减法计数,TCNTn的值减至TCNTn寄存器值109,输出TOUTn从低电平变为高电平。

l  如果减法计数器到达0,它会产生一个中断请求。

l  减法计数器自动载入TCNTBn,会重启循环。

 

6、定时器时钟确定

 Timer input clock Frequency = PCLK /

   {prescaler value+1} / {clock divider }
{prescaler value} = 0~255
{ clock divider } = 16, 32, 64, 128

例题:

 1)通过S5PV210微处理器定时器实现时钟,并通过UART串口打印时、分、秒等信息。

http://blog.csdn.net/u013256018/article/details/50465289

 2)通过S5PV210微处理器的PWM定时器编程控制直流电机,以实现……调速控制。

 

 

7、能发送系统重起信号的定时器我们就叫它watchdog,中文名称叫做“看门狗”,全称watchdog timer,从字面上我们可以知道其实它属于一种定时器。

公式计算看门狗定时器的计数时钟周期:

         T_watchdog = 1/ (PCLK / (预分频器值 + 1) / 分割因子)

 

在系统程序正常执行情况下,应用程序必须在一定周期内(不能大于看门狗定时器所产生的时间间隔)执行重置看门狗动作,使其计数器值不会递减到0,因而也不会产生复位信号。一旦程序出现死锁,就不能周期性地重置看门狗,看门狗定时器计数溢出,产生一个“回0信号”,利用该信号复位微处理器,从而使系统程序退出死锁,重新进入正常运行状态

 

 8、三个看门狗控制寄存器:

  WTCON --watchdog控制寄存器

  WTDAT--看门狗定时器数据寄存器

  WTCNT――看门狗定时器计数寄存器

9、喂狗函数

  void feed_dog()
{        rWTCNT=0x8000;}

  例程:

  void main()
{   init_system();        .....
     enable_watchdog();       .....
       while(1)        {  feed_dog();             }
}

10、实时时钟部件RTC是用于提供年、月、日、时、分、秒、星期等实时时间信息的定时部件。

11、RTC部件所使用的寄存器,其中数据以BCD码格式保存。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值