打印
[技术问答]

f460看手册似乎是可以定时器级联操作的,有这方面的例子吗

[复制链接]
1040|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
定时器如何级联

使用特权

评论回复
沙发
martinhu| | 2019-9-18 14:29 | 只看该作者
你是要把16位的CNT级联成32位的CNT吗?就是低位的定时器1的65536溢出的事件请求作为一个AOS事件,高位的定时器把这个AOS事件当做硬件递加的条件,这样低位定时器每溢出溢出,高位定时器可以递加(或者递减)计数一次

使用特权

评论回复
板凳
wangshujun|  楼主 | 2019-9-22 09:09 | 只看该作者
martinhu 发表于 2019-9-18 14:29
你是要把16位的CNT级联成32位的CNT吗?就是低位的定时器1的65536溢出的事件请求作为一个AOS事件,高位的定 ...

手册里面对于aos描述非常少,看上去是一个极其强大的功能
我现在的需求是用一个定时器做另一个定时器的预分频,因为定时器自带的预分频是2的幂方式的,导致分辨精度和最大计时时间存在矛盾

使用特权

评论回复
地板
martinhu| | 2019-9-23 17:46 | 只看该作者
本帖最后由 martinhu 于 2019-9-24 16:12 编辑

这个是使用timer61和timer62做了一个级联的功能Timer61计数到0xFFFF之后产生上溢事件OVF,timer61的OVF EVENT作为timer62的硬件递加计数功能,每次timer61的OVF事件,可以使timer62递加计数一次
可以把这个附件放在驱动库样例的如下路径里参考使用

Timer6_32bit.zip

1.59 MB

使用特权

评论回复
5
wangshujun|  楼主 | 2019-9-24 16:52 | 只看该作者
已下载,学习一下,我这边自己测试tima模块的级联了,挺简单的,很好用

使用特权

评论回复
评论
martinhu 2019-9-24 17:23 回复TA
原理一样的,刚才这个timer6的工程,好像用KEIL打开会有问题,建议使用IAR打开 
6
wangshujun|  楼主 | 2019-9-24 21:46 | 只看该作者
trma有标准的级联操作,设置一下就行,我想了解的是不同定时器之间通过事件来级联的例子
主要的问题aos模块的描述在手册里面找不到,使能寄存器在手册叫PTDIS,很奇怪。

使用特权

评论回复
7
xch| | 2019-9-25 23:48 | 只看该作者
wangshujun 发表于 2019-9-24 21:46
trma有标准的级联操作,设置一下就行,我想了解的是不同定时器之间通过事件来级联的例子
主要的问题aos模块 ...

12.4.9  内部触发事件
ADC、TMR、DMA,PORT、DCU 等周边外设除通过配置模块本身的寄存器开始工作
以外,也可以通过写外设触发事件寄存器触发其他模块开始工作。具体设定流程请参
考各模块章节。

使用特权

评论回复
8
xch| | 2019-9-25 23:52 | 只看该作者
wangshujun 发表于 2019-9-24 21:46
trma有标准的级联操作,设置一下就行,我想了解的是不同定时器之间通过事件来级联的例子
主要的问题aos模块 ...

搜索:TRGSEL[8:0]  ,可得各种可以内部触发的模块及其对应设置寄存器。

使用特权

评论回复
9
martinhu| | 2019-9-27 11:29 | 只看该作者
wangshujun 发表于 2019-9-24 21:46
trma有标准的级联操作,设置一下就行,我想了解的是不同定时器之间通过事件来级联的例子
主要的问题aos模块 ...

定时器可以输出计数溢出事件,如果被触发定时器可以设置trigger source,而且支持硬件递加计数,比如timera和timer6,他们之间也可以级联

使用特权

评论回复
10
zlmin| | 2019-10-3 10:38 | 只看该作者
谢谢分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

509

帖子

3

粉丝