第一页,共二十一页。每个定时器模块都从时钟分频器接收它自己的时钟信号,时钟分频器接收的时钟信号来自于8位预分频器。可编程8位预分频器根据存储(cúnchǔ)在TCFG0和TCFG1中的数据对PCLK进行预分频。分频器功能见表11-1。当时钟被允许后,定时器计数缓冲寄存器(CTNTBn)把计数初值下载到减法计数器中。定时器比较缓冲寄存器(CMPBn)把初始值下载到比较寄存器中,来和减法计数器的值比较。这种CTNTBn和CMPBn双缓冲寄存器特性能使定时器产生稳定的输出,且占空比可变。第二页,共二十一页。每一个定时器都有一个自己的用定时器时钟驱动的16位减法计数器。当减法计数器减到0时,就会产生一个定时器中断来通知CPU,定时器操作完成。当定时器减法计数器减到0时,相应的TCNTBn的值被自动重载到减法计数器中继续下次(xiàcì)操作。然而,如果定时器停止了,比如在运行时通过清除TCON中定时器使能位来中止定时器的运行,则TCNTBn的值不会被重载到减法计数器中。TCMPBn的值用于脉冲宽度调制(PWM)。当定时器的减法计数器的值和TCMPBn的值相匹配时,定时器输出改变输出电平。因此,比较寄存器决定了PWM输出的开关时间。定时器具体操作时序如图11-2所示。第三页,共二十一页。第四页,共二十一页。11.1.1S3C2410定时器特性:.5个16位定时器;.2个8位预分频器和2个4位分频器;.可编程PWM输出占空比;.自动重载模式或者(huòzhě)单个脉冲输出模式;.具有死区生成器;.自动重载与双缓冲。S3C2410定时器具有双缓冲功能,能在不中止当前定时器运行的情况下,重载下次定时器运行参数,所以尽管新的定时器的值被设置好了。当前操作仍能成功完成。定时器值可以被写入定时器计数缓冲寄存器(TCNTBn),当前计数器的值可以从定时器计数观察寄存器(TCNTOn)读出。读出的TCNTBn值并不是当前计数器的值,而是下次重载的计数器值。TCNTn的值等于0时,自动重载操作,把TCNTBn的值装人TCNTn,只有当自动重载允许并且TCNTn的值等于1时才会自动重载。如果TCNTn=0,自动重载禁止,.则定时器停止运行,具体如图11-3所示。第五页,共二十一页。使用手动更新完成定时器的初始化和倒相位:当计数器的值减到0时会发生自动(zìdòng)重载操作,所以TCNTn的初始值必须由用户提前定义好,在这种情况下就需要手动更新启动值。以下几个步骤给出了更新过程:第六页,共二十一页。.向TCNTBn和TCMPBn写入初始值。.置位相应定时器的手动更新位,不管是否使用倒相...