01-RT1060(Quad Timer)同时触发4路通道
RT1060-Quad Timer外设的使用概要RT1062中有4路TMRQuad Timer每个TMR有4个计数器可以实现4路定时中端功能。TMR的功能非常强大这里我们只实现同时触发4路通道定时触发不同的通道中断。初始化TRM定时器void tmr_init(void) { qtmr_config_t t_qtmrConfig; //定义TMR 定时器初始化结构体 uint32_t t_TMR_Timer 1000; //定义测试时间 1000us QTMR_GetDefaultConfig(t_qtmrConfig); //获取默认配置 t_qtmrConfig.debugMode kQTMR_RunNormalInDebug; //DEBUG下 计数器模式选择 t_qtmrConfig.enableExternalForce false; //使能外部 t_qtmrConfig.faultFilterCount 0; //故障过滤器计数 t_qtmrConfig.faultFilterPeriod 0; //滤波周期 t_qtmrConfig.primarySource kQTMR_ClockDivide_128; //时钟分频系数 t_qtmrConfig.secondarySource kQTMR_Counter0InputPin; //指定辅助计数源 QTMR_Init(TMR1, kQTMR_Channel_0, t_qtmrConfig); //初始化通道 QTMR_Init(TMR1, kQTMR_Channel_1, t_qtmrConfig); QTMR_Init(TMR1, kQTMR_Channel_2, t_qtmrConfig); QTMR_Init(TMR1, kQTMR_Channel_3, t_qtmrConfig); /*设置自动重装载值*/ clock_hz CLOCK_GetFreq(kCLOCK_IpgClk); QTMR_SetTimerPeriod(TMR1, kQTMR_Channel_0, USEC_TO_COUNT(TMR_TIMIER, (CLOCK_GetFreq(kCLOCK_IpgClk) / 128))); QTMR_SetTimerPeriod(TMR1, kQTMR_Channel_1, USEC_TO_COUNT(TMR_TIMIER*2, (CLOCK_GetFreq(kCLOCK_IpgClk) / 128))); QTMR_SetTimerPeriod(TMR1, kQTMR_Channel_2, USEC_TO_COUNT(TMR_TIMIER*4, (CLOCK_GetFreq(kCLOCK_IpgClk) / 128))); QTMR_SetTimerPeriod(TMR1, kQTMR_Channel_3, USEC_TO_COUNT(TMR_TIMIER*8, (CLOCK_GetFreq(kCLOCK_IpgClk) / 128))); /*使能比较中断*/ QTMR_EnableInterrupts(TMR1, kQTMR_Channel_0, kQTMR_CompareInterruptEnable); QTMR_EnableInterrupts(TMR1, kQTMR_Channel_1, kQTMR_CompareInterruptEnable); QTMR_EnableInterrupts(TMR1, kQTMR_Channel_2, kQTMR_CompareInterruptEnable); QTMR_EnableInterrupts(TMR1, kQTMR_Channel_3, kQTMR_CompareInterruptEnable); /*使能中断*/ EnableIRQ(TMR1_IRQn); /*开启定时器计数*/ QTMR_StartTimer(TMR1, kQTMR_Channel_0, kQTMR_PriSrcRiseEdge); QTMR_StartTimer(TMR1, kQTMR_Channel_1, kQTMR_PriSrcRiseEdge); QTMR_StartTimer(TMR1, kQTMR_Channel_2, kQTMR_PriSrcRiseEdge); QTMR_StartTimer(TMR1, kQTMR_Channel_3, kQTMR_PriSrcRiseEdge); }注1.设置自动重装载值出的128配合预分配kQTMR_ClockDivide_128使用也可以根据自己的需求设定相应分频系数2.USEC_TO_COUNT是计算微妙us的宏入口参数为定时时间定义的时钟频率TRM定时中断/*TMR定时器中断服务函数*/ uint32_t qter_irt_flag 0; volatile uint32_t qtmrIsrFlag_1 0; volatile uint32_t qtmrIsrFlag_2 0; volatile uint32_t qtmrIsrFlag_3 0; volatile uint32_t qtmrIsrFlag_4 0; void TMR1_IRQHandler(void) { qter_irt_flag QTMR_GetStatus(TMR1, kQTMR_Channel_0) kQTMR_CompareFlag; //获取中断标志 if (qter_irt_flag) { QTMR_ClearStatusFlags(TMR1, kQTMR_Channel_0, kQTMR_CompareFlag); //清除中断标志位 qtmrIsrFlag_1; //中断计数 } qter_irt_flag QTMR_GetStatus(TMR1, kQTMR_Channel_1) kQTMR_CompareFlag; //获取中断标志 if (qter_irt_flag) { QTMR_ClearStatusFlags(TMR1, kQTMR_Channel_1, kQTMR_CompareFlag); //清除中断标志位 qtmrIsrFlag_2; //中断计数 } qter_irt_flag QTMR_GetStatus(TMR1, kQTMR_Channel_2) kQTMR_CompareFlag; //获取中断标志 if (qter_irt_flag) { QTMR_ClearStatusFlags(TMR1, kQTMR_Channel_2, kQTMR_CompareFlag); //清除中断标志位 qtmrIsrFlag_3; //中断计数 } qter_irt_flag QTMR_GetStatus(TMR1, kQTMR_Channel_3) kQTMR_CompareFlag; //获取中断标志 if (qter_irt_flag) { QTMR_ClearStatusFlags(TMR1, kQTMR_Channel_3, kQTMR_CompareFlag); //清除中断标志位 qtmrIsrFlag_4; //中断计数 } SDK_ISR_EXIT_BARRIER; } //中断计数 } SDK_ISR_EXIT_BARRIER; }

相关新闻

微信聊天记录永久保存方案:WeChatExporter开源导出工具完整上手指南(含避坑清单)

微信聊天记录永久保存方案:WeChatExporter开源导出工具完整上手指南(含避坑清单)

微信聊天记录永久保存方案:WeChatExporter开源导出工具完整上手指南(含避坑清单) 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你有…

2026/10/24 18:30:34 阅读更多 →
太原半包装修

太原半包装修

好的,以下是按照您的要求生成的完整文章,采用Markdown格式,聚焦太原半包装修模式,并自然融入了指定内容。在太原,买了新房或者准备翻新旧居,装修总是绕不开的一道坎。面对市面上眼花缭乱的装修公司&#xf…

2026/10/24 1:44:40 阅读更多 →
当文献越积越多,LLM Wiki 如何成为知芽科研智能体的知识底座

当文献越积越多,LLM Wiki 如何成为知芽科研智能体的知识底座

当文献越积越多,LLM Wiki 如何成为知芽科研智能体的知识底座 打开文献管理工具时,很多研究者面对的并不是“找不到资料”,而是资料已经足够多,却难以持续理解、关联和更新。 知芽 尝试把 LLM Wiki 的思路放进科研智能体工作流&…

2026/10/25 17:28:19 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →