在嵌入式系统中,我们需要了解3个时钟频率:FCLK. HCLK. PCLK 。

      FCLK :一般来说通过外接12M 的晶振,结合芯片内部锁相环的倍频而得到200M 的FCLK. 作为CPU 的内部时钟。

    HCLK :通过对FCLK 的分频得到,一般取值为FCLK 的一半(100M),主要用于为高速设备(连接至AHB总线上) 提供时钟。

  PCLK :通过对FCLK 的分频得到,一般取值为HCLK 的一半(50M),主要用于为低速设备(连接至APB总线上) 提供时钟。

      另外还有专门为USB 提供时钟的UCLK 。

    定时器属于低速设备,故是通过对PCLK 降频后作为定时器时钟的。s3c2410 共有5个定时器t0-t4, 前四个有外接输出口,可用于对低速外设提供时钟,而t4 没有外部输出口,是仅提供给cpu 内部使用的。其工作原理如下图:

图片发自简书App

那么如何设置和运行一个固定周期的定时器或计时器的呢?

    1、通过设置TCFG0 的bits(15, 8) 来确定第一级分频值(0-255);

    2、 通过设置TCFG1 的bits(19 , 16) 来确定第二级分频值(1/2 ,1/4 ,1/8 ,1/16);

    3、通过设置TCFG1 的bits(23 , 20) 来确定选择中断方式还是DMA方式;

    4、通过设置TCON 的bits(22) 来确定是否开启自动装载被减数。

    5、通过设置TCON 的bits(21) 来手动将TCNTB4 中的被减数装入TCNT4 。完成之后需要将该位清零。

    6、通过设置TCON 的bits(20) 来确定计数器的开始和停止。

图片发自简书App