telechips 8902定时计数器调试心得

本文介绍了telechips 8902芯片中T-Timer的使用,包括3种类型定时器的概述,重点讲解了16位定时器T-Timer1的配置,如时钟源选择、计数模式和中断设置。内容涵盖了时钟源分频、计数器控制位以及PWM功能,并提到了定时器中断服务程序的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天调试了下TCC8902的定时计数器,简单记录下:

8902总工有3种类型的定时器,T-Timer,X-Timer,Z-Timer;其中T-Timer是通用定时器(Timer0~Timer3是4个16位的定时器,Timer4、Timer5是2个20位的定时器),X-Timer是看门狗定时器,Z-Timer是一个32位的定时器,三种不同类型的定时器对应不同的时钟源,这些时钟源可能是内部总线时钟分频出来的,也有可能是外部时钟输入,具体看寄存器的设置,下面简单说下T-Timer1的设置:


上图是16bit定时器的原理框图。定时器设置,最关键的是时钟源的选择(上图的TCLK),8902的时钟源有两种产生方式TCLK(PCLK=12MHz,这个时钟是在boot的main.c中设置)分频产生和外部EXTCLK[3:0]产生,配置TCFG1可以选择不同的时钟源和分频因子。

15~10位   :预留

9位(STOP) :设置连续计数,还是只定一次

8位(CC) :设置TCNT是否清零

7位(TOL) :设置TCNT是上升沿计数还是下降沿计数

[6:4]位(TCKSEL)  :时钟源的选择

k=0~4   TCK=TCLK/2(k+1) (2的k+1次方)

k=5、6  TCK=TCLK/2k

k=7       外部时钟,8902有4个外部时钟引脚,这种模式只能用在0~4定时器。

3位(IEN)   :中断使能控制位

2位(PWM) :PWM控制

1位(CON) :TCNT的计数方式,当TCNT=TREF时,清0还是继续计数

0位(EN) :开启/关闭定时器

接下来就是设置定时时间了,

主要是设置TREF和TCNT这两个寄存器

这两个寄存器的具体功能数据手册中有详细描述,就是设置计数值,每次来一个脉冲,技术值就会加1,当累加到这个计数值时,就会清零,再开始计数。若要用到PWM调占空比,还得要设置TMREF寄存器。

每次当计数记满之后,就会产生一个TIREQ的定时器中断,我们可以在定时器对应的定时器中断服务程序中进行相应的操作,8925的中断会有一组中断向量号和中断优先级控制寄存器,详细在以后再做记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值