设为首页 加入收藏

TOP

S3C2440定时器和pwm编程分析
2014-11-24 11:30:44 来源: 作者: 【 】 浏览:0
Tags:S3C2440 定时器 pwm 编程 分析

从图可以看出:


l 定时器的输入时钟是PCLK


l T0T1为一组,T0T1共用一个8bit分频器


l T2T3T4为一组,共用一个8bit分频器,T4没有输出引脚只能做内部时钟使用。


l 8bit分频后还有一个1/2 1/4 1/8 1/16 clock divider


l 定时器输入时钟频率计算如下:


[ /(prescaler+1)]/分频器的分频值


prescaler value = 119


divider value = 1/16


PCLK= 50700000


Timer input clock Frequency =50700000/ (119+1)/(16)=26406



就是输入的时钟,prescaler就是分频值(24816),其中TCFG0控制着prescaler的分频值;TCFG1控制着分频器的值(24816)。


l 定时器减法缓冲寄存器TCNTBn和比较缓冲寄存器TCMPBn


TCNTBn存放计数值,TCMPBn存放比较值,当定时器开启后TCNTBnTCMPBn将被下载到TCNTnTCMPn中,TCNTnTCMPn不会理会硬件自动操作。TCNTnTCMPn值相等时电平反转,当TCNTn为零时CU产生中断。其实如果只是定时作用的话是不用去操作TCMPBn的,TCMPBn用于产生PWM波。


l 定时器控制寄存器TCON和定时器观察寄存器TCNTOn


定时器0的初始化


void Timer0_Init()


{


//设置TOUT0为输出引脚


TCFG0 = 99;//预分频器值


TCFG1 = 0x03;//16分频


TCNTB0 = 31250;//the time interal is 1s=(50M/(99+1)/16)


TCON = 0xa;//手动更新


TCON = 0x9;//自动更新


INTMASK &= (~(1<<10));//允许定时器0中断。


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇配置自己的UC/OS—II操作系统 下一篇uC/OS-II源码分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)
·MySQL 数据类型:从 (2025-12-26 18:20:03)
·Linux Shell脚本教程 (2025-12-26 17:51:10)
·Qt教程,Qt5编程入门 (2025-12-26 17:51:07)