完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
第一、S3C2440共有5个16位的定时器。其中定时器0、1、2、3有PWM(脉冲宽度调制:利用处理器的数字输出控制模拟电路)功能,他们都有一个输出引脚,可以通过定时器来控制引脚周期性的高、低电平变化;定时器4没有输出引脚。 第二、定时器部件的时钟源为PCLK,首先通过两个8位的预分频器降低频率:定时器0、1共用第一个预分频器,定时器2、3、4公用第二个预分频器。预分频器的输出将进入第二级分频器,它们输出5种频率的时钟:2分频、4分频、8分频、16分频或者外部的TCLK0/TCLK1,每个定时器的工作时钟也可以从这5种频率中选择。 第三、定时器启动流程 1. 定时器初始化 (1) 初始化定时器时钟频率 根据前面“第二”可以知道,5个定时器(0,1,2,3,4)都要进预分频和二级分频。 定时器分频的公式为: 定时器分频后时钟频率=PCLK时钟源频率/prescaler值(预分频值)/divider值(二级分频值) Prescaler的值由上面表中可知是通过寄存器TCFG0来配置的,如果是定时器2,3,4,那么Prescaler的值 = TCFG0[15:8]中设置的值;如果是定时器0,1,那么 Prescaler的值 = TCFG0[7:0]中设置的值。 Divider的值由寄存器TCFG1来设置的,如果是定时器0,那么 Divider的值由TCFG1[3:0]设置确定,如果是定时器1,那么 Divider的值由TCFG1[7:4]设置确定,如果是定时器2,那么 Divider的值由TCFG1[11:8]设置确定,如果是定时器3,那么 Divider的值由TCFG1[15:12]设置确定,如果是定时器4,那么 Divider的值由TCFG1[19:16]设置确定。 (2) 初始化设置定时器计数值 即对寄存器TCMPBn和TCNTBn进行初始化(意思见后面讲的定时器工作流程) 其中TCMPBn与TCNTBn两个单词最后一个字母n可取值为0,1,2,3,4,分别表示定时器 0,1,2,3,4。如TCMPB2与TCNTB2表示配置定时器2的寄存器。 (3) 初始化设置中断处理函数 2. 定时器启动 设置寄存器TCON[0]值为1即可启动定时器,设置TCON[0]值为0关闭定时器 TCON[3]值为0表示定时器启动后只执行一个周期,TCON[3]值为1表示定时器启动后会循环执行定时器 第四、定时器工作过程,下图表示的是定时器0的寄存器 假设 TCMPB0值设置为50, TCNTB0设置值为100, 当启动定时器0后 第(1)步TCMPB0会把值复制给TCMP0,TCNTB0把值复制给TCNT0, 第(2)步TCNT0的值开始循环减1,当TCNT0的值被减到50时,TCNT0的值 与TCMP0的值相同,此时会触发一个中断。(我们就可以设置一个监听中断的中断处理函数,如果处理函数为播放音乐,那么就是相当于做了一个闹钟了。) 第(3)步TCNT0继承重复减1,当TCNT0的值被减到0时,有两种可能的的执行流程: A.再次执行上面的“第(1)步”; B.结束; 具体是再次执行上面的“第(1)步”,还是执行“结束”,由寄存器TCON的设置还判断. (如果要想实时的取出TCNT0的值,可以通过TCNTO0寄存器。) 原作者:wangguangrong |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
ElfBoard ELF 1板卡-开发板启动后打印random: nonblocking pool is initialized
393 浏览 0 评论
G2D图像处理硬件调用和测试-基于米尔-全志T113-i开发板
1860 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡- 减少uboot阶段的等待时间
1260 浏览 0 评论
嵌入式学习-飞凌ElfBoard ELF 1板卡 - 重新打包文件系统发现ftp无法正常连接
1753 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-6ull设置两个ip
2305 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 00:18 , Processed in 0.647624 second(s), Total 64, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号