一、定时器分类
1、系统定时器 (CORET)
24位递减计数器
递减到0可以产生中断
递减到0需软件重新置位
2、基本计数器 (Basic Timer)
16位递增计数器
16位预分频器
PWM输出
支持ETCB
四类中断
a) PEND事件:计数器周期结束时发生。
b) CMP事件:计数器计数值等于CMP寄存器设置时发生。
c) OVF事件:计数器计数溢出(0xFFFF)时发生。
d) TRGEV事件:同步触发输出事件有输出是发生。
3、计数器A (CNTA)
16位递减计数器
用来产生载波频率
可产生中断
4、增强型通用定时器 (GPTA)
16/24 位可复位计数器(GPT0 为 24bit; GPT1 为 16bit)
可编程计数器计数方式
a) 递增计数(Up-counting)
b) 递减计数(Down-counting)
c) 递增递减计数(Up-down-counting)
支持事件计数器,可通过配置事件计数器(最大 15)触发相应中断
5、增强型通用定时器B (GPTB)
16 位可复位计数器
可编程计数器计数方式
a) 递增计数(Up-counting)
b) 递减计数(Down-counting)
c) 递增递减计数(Up-down-counting)
两路波形产生控制单元,支持双路独立输出:
a) 两路独立的 PWM 输出,单边沿工作
b) 两路独立的 PWM 输出,双边沿对称工作
c) 1 组独立的 PWM 互补输出 + 1 路独立的 PWM 输出
异常事件发生时,自动触发预设波形输出
触发源包括 GPIO 输入,其他外设触发,软件设置和事件触发
支持单次触发和连续触发模式
支持单脉冲输出模式
支持事件计数器,可通过配置事件计数器(最大 15)触发相应中断
6、增强型通用定时器 (EPT)
16 位计数器
支持 PWM 对更高载波频率进行斩波输出
支持捕获模式,最多支持 4 个捕获值存储
7、实时时钟计数器(RTC)
所有低功耗模式下均可独立运行
支持系统唤醒
BCD 编码
提供实时的日历和时间信息
产生周期性的中断事件
一旦初始化成功并开始工作,任何复位信号均不能影响其工作,除非重新上电
支持多个时钟源,包括外部晶振、内部低速振荡器和内部主振荡器
8、低功耗定时器 (LPT)
16 位递增计数器
4 Bit 预分频控制,支持(1,2,4,8,16,32,64,128,256,512,1024,2048,4096 分频)
支持多种计数时钟:
a) 内部时钟:ISCLK, IMCLK, EMCLK,ESCLK 或 PCLK
b) 外部时钟:LPT_IN(当没有内部时钟时,可以作为脉冲计数)
c) 一路独立的 PWM 输出
一个比较值寄存器
支持连续或单次计数模式
支持通过 ETCB 触发
支持脉冲和 PWM 输出模式
9、窗口型看门狗 (WWDT)
8 位可编程递减计数器
预设计数器时钟分频器:Div (1/2/4/8 x 4096)
a) 计数器时钟基于 PCLK 工作
b) 分频器的基础分频为 PCLK/4096
c) 可选择基于 4096 分频后的二次分频:DIV1、DIV2、DIV4 和 DIV8
产生复位的条件:
a) 递减计数器计数器值小于 0x80
b) 软件刷新计数器发生在预设窗口外
c) 软件写入的刷新计数器的数值小于 0x80
报警中断:当计数器值等于 0x80 时,可产生中断
10、独立看门狗 (IWDT)
中断可作为处理器在 DEEP-SLEEP 模式下定时唤醒的中断源
12 位的 Free Running递减计数器
一旦使能则必须在计数器溢出前进行清除,否则会产生系统复位
二、逐个分析
1、基本计数器 (Basic Timer)
定时中断
中断函数中操作板载LED闪烁,同时串口每隔3秒输出一次“进入BT中断”。
PWM
主循环调节占空比实现呼吸灯效果
2、计数器A (CNTA)
定时中断
中断函数中每隔3秒串口输出“进入CNTA中断”
PWM
程序设计频率38KHz,占空比33%,实测频率为38.168KHz,占空比为38.168/116.279=32.82%,符合预期。
3、实时时钟计数器(RTC)
万年历
4、闹钟
5、窗口型看门狗 (WWDT)
6、独立看门狗 (IWDT)
三、测评总结
本期为定时器集合,学习了所有定时器外设并挑选其中的部分外设作简要调试测试。
根据实测效果来看,APT32F1104芯片定时器精度符合预期,代码封装较完善,实际只需小幅修改即可看到现象。
全部0条评论
快来发表一下你的评论吧 !