【经验】EFM32、EFR32 如何设置一个 1ms 的定时器
Silicon Labs 提供了 MCU 及各种 wireless SoC 芯片,广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。定时器在这些产品中应用非常广泛,不管是各种纯软件相关的任务管理还是硬件的 pwm 输出,都对定时器的精度都有较高要求;下面我们以一个具体的例子来说明如何初始化EFM32、EFR32一个特定时间的定时器。
//定时器中断处理函数,中断向量表已经将此函数与中断相关联,此处只需定义即可
void TIMER1_IRQHandler(void)
{
// Acknowledge the interrupt
uint32_t flags = TIMER_IntGet(TIMER1);
TIMER_IntClear(TIMER1, flags);
}
//定时器初始化流程
void initTimer(void)
{
uint32_t timerFreq = 0;
// Initialize the timer 定义一个用于定时器初始化的结构体
TIMER_Init_TypeDef timerInit = { \
false, /* Enable timer when initialization completes. */ \
false, /* Stop counter during debug halt. */ \
timerPrescale1, /* 1 prescaling. 1分频 */ \
timerClkSelHFPerClk, /* Select HFPER / HFPERB clock. */ \
false, /* Not 2x count mode. */ \
false, /* No ATI. */ \
timerInputActionNone, /* No action on falling input edge. */ \
timerInputActionNone, /* No action on rising input edge. */ \
timerModeUp, /* Up-counting. */ \
false, /* Do not clear DMA requests when DMA channel is active. */ \
false, /* Select X2 quadrature decode mode (if used). */ \
false, /* Disable one shot. */ \
false /* Not started/stopped/reloaded by other timers. */ \
};
CMU_ClockEnable(cmuClock_TIMER1, true); //使能 TIMER1 定时器的时钟
// Configure but do not start the timer 初始化定时器 TIMER1
TIMER_Init(TIMER1, &timerInit);
// Set top value to overflow 设置 top 值,当定时器溢出时产生中断
TIMER_TopSet(TIMER1, CMU_ClockFreqGet(cmuClock_TIMER1)/ 1000);
// Start the timer 启动定时器
TIMER_Enable(TIMER1, true);
//enable overflow interrupt 使能溢出中断
TIMER_IntEnable(TIMER1, TIMER_IEN_OF);
//enable Timer1 interrupt 开启 TIMER1 中断
NVIC_EnableIRQ(TIMER1_IRQn);
}
这里最重要的一点是定时时间的计算,上述代码实现了 1ms 定时器 ,每当 top 值达到 CMU_ClockFreqGet(cmuClock_TIMER1)/ 1000 时,产生1ms中断;计算方法如下:
假设 top 值是m,那么将有如下等式:m/ CMU_ClockFreqGet(cmuClock_TIMER1)s = (1/1000)s,那么 m = CMU_ClockFreqGet(cmuClock_TIMER1)/ 1000;有了这个公式我们举一反三得到具体的 top 值。这个公式的 m 是一个整数,我们在计算式需要考虑准确性以及实际取值范围,因此频率(分频)需要动态调整,以得到最准确时间。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由xiaoyangfengle提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关研发服务和供应服务
相关推荐
【经验】芯科Simplicity Studio V5编译MCU EFM32PG23时如何调整编译优化等级
EFM32PG23使用Silicon Labs的集成开发环境Simplicity Studio V5进行程序开发。该开发软件中提供EFM32PG23所有外设的例程和硬件的图形化初始化配置界面,让产品开发更容易。
设计经验 发布时间 : 2023-01-04
【经验】你还在用蛮力操作MCU位反转吗?试试RBIT吧,巧远胜于拙
以Silicon Labs EFM32GG11为例,在ARM Cortex M系列CPU上的(32位)字中的位首先排序为最高有效位(MSB),其中MSB是最左边的位。软件通常以这种方式格式化数据,例如,当MSB为1时,有符号数字为负数。但是在某些特殊的场景下可能需要高低位反转,例如LCD的像素操作。EFM32GG11上有一个及其简单的办法,其内部函数为__RBIT(),专门用来做位反转。
设计经验 发布时间 : 2019-12-24
为物联网开发选择最佳的MCU架构
微控制器(MCU)如何在物联网设备中使用?开发人员又该如何为产品选择最合适的MCU解决方案?Silicon Labs产品营销高级经理Gopinath Krishniah先生将通过本篇博文说明MCU的应用知识和开发技巧,并介绍评估选用8位和32位MCU的关键考量。
设计经验 发布时间 : 2024-05-15
芯科科技EFM和EFR系列MCU结合无线与AI/ML打造理想IoT开发平台
Silicon Labs(亦称“芯科科技”)在2023年12月12日举办的MCU专题Tech Talks技术讲座-“EFM和EFR: 面向物联网开发的通用MCU平台”已结束。本次MCU专题技术讲座中,除了回顾我们领先的MCU平台包括EFM8、EFM32和EFR32系列产品组合以外,并专门介绍最新发布的EFM8 BB5x系列8位微控制器新成员-EFM8 BB50。
原厂动态 发布时间 : 2023-12-19
超低功耗MCU智能家居的节能新宠
随着智能家居的快速发展,越来越多的家庭开始享受智能化带来的便捷和舒适。然而,智能家居设备在带来便利的同时,也带来了能耗问题。为了解决这一难题,超低功耗MCU(微控制器)逐渐成为智能家居领域的节能新宠。本文将深度解析超低功耗MCU在智能家居中的应用及其带来的节能效果。
原厂动态 发布时间 : 2024-06-25
博流(Bouffalo Lab)智能物联网芯片选型指南
目录- 智能物联网芯片
型号- BL602L-20-Q2H,BL602L-10-Q2H,BL602C-20-Q2I,BL706S-10-Q2I,BL706C-10-Q2I,BL606P-08-Q2I,BL706C-22-Q2I,BL604E-20-Q2I,BL702S-10-Q2I,BL606P-65-Q2I,BL702C-10-Q2H,BL702S-A0-Q2I,BL602C-00-Q2I
含24位高精度ADC的工业级信号链MCU,可轻松通过EFT抗干扰测试,适用于智能家居领域
晟矽微电子智能家居MCU产品线芯片性能及应用覆盖全面,性价比高,可轻松通过EFT抗干扰测试,产品广泛应用于智能家电、消防安防、健康医疗、智能照明、物联网等领域。本期【晟矽芯】推出的芯片是含24位高精度ADC的MCU——MS32F7223。
产品 发布时间 : 2024-06-08
PG26荣获中国电子报评选为“2024边缘AI MCU优秀案例”
Silicon Labs(亦称“芯科科技”)最新发布的EFM32PG26(PG26) 32位微控制器(MCU)近期荣获中国电子报评选并推荐为“2024边缘AI MCU优秀案例”。PG26通过提升了两倍的闪存和RAM容量以及GPIO的数量,同时还嵌入人工智能和机器学习(AI/ML)硬件加速器来满足各种低功耗和高性能嵌入式物联网应用需求,因而获得行业的认可及青睐。
原厂动态 发布时间 : 2024-06-11
EFR32FG28 Wireless SoC Family Data Sheet
型号- EFR32FG28A120F1024GM48-A,EFR32FG28A010F1024GM48-A,EFR32FG28B310F1024IM48-A,EFR32FG28A110F1024GM48-A,EFR32FG28A110F1024GM68-A,EFR32FG28B310F1024IM68-A,EFR32FG28A322F1024IM68-AR,EFR32FG28B320F1024IM68-A,EFR32FG28A122F1024GM68-A,EFR32FG28A112F1024GM68-A,EFR32FG28B312F1024IM68-A,EFR32FG28A122F1024GM48-A,EFR32FG28B312F1024IM48-A,EFR32FG28,EFR32FG28B322F1024IM68-A,EFR32FG28B320F1024IM48-A,EFR32FG28A112F1024GM48-A,EFR32FG28B322F1024IM48-A,EFR32FG28A120F1024GM68-A,EFR32FG28A010F1024GM68-A
【经验】查看Wireless SOC EFR32MG系列内部MAC地址的方法总结
EFR32MG系列Wireless SOC是Silicon Labs公司提供的市面上集成度最高、最完善且功能最丰富的 Zigbee 解决方案,结合最可靠并可扩展的高级 Zigbee 协议栈EmberZnet,成为ZigBee产品的首选。工程师在使用EFR32MG开发产品时,经常会需要查看其内部的MAC地址,本文为大家总结查看MAC地址的方法。
设计经验 发布时间 : 2019-09-24
【IC】芯科科技新品PG26 32位MCU系列,大容量存储 + 快速AI/ML推理满足未来的物联网需求
SILICON LABS最新发布的EFM32PG26(PG26)32位微控制器系列通过提升两倍的闪存和RAM容量,以及GPIO的数量来满足各种低功耗和高性能嵌入式物联网应用需求。面向无线连接功能的需求,PG26可作为EFR32xG26多协议无线SoC平台的软件兼容MCU版本,有助于开发人员基于同一平台设计快速且无缝地升级低功耗蓝牙、Matter、Thread、Zigbee或专有无线连接设计。
产品 发布时间 : 2024-04-17
【经验】32位MCU EFM32系列中断分组及优先级设置方式
Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。中断是一个MCU中比较核心的部分,在实时性要求比较高、功耗低的场合经常需要中断的配合,中断优先级是根据中断事件的重要性和紧迫程度做出的一个设置,系统先响应优先级高的中断请求,再响应优先级低的中断请求。
设计经验 发布时间 : 2019-12-24
【经验】32位MCU EFM32系列在Keil中接收SWO信息的配置步骤
Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。在研发过程中会有很多繁杂的调试过程,本文主要介绍如何将Jlink的SWO接口上输出的调试信息在Keil中显示出来。
设计经验 发布时间 : 2019-10-16
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 104,628
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论