本文介绍了华芯微特公司的MCU之TIMER脉冲发送功能的知识要点。
TIMER脉冲发送
1TIMER定时器之脉冲发送功能
我们今天详细讲解一下TIMER的脉冲发送功能。
SWM190的TIMER模块提供了用于输出脉冲的功能,发送指定脉宽的方波,可通过配置相应寄存器输出脉冲做PWM使用。每一个TIMER都可以配置两个脉冲输出翻转点(翻转点0/1)中断。使能中断后,在计数过程中到达设置的翻转值会触发中断操作。
一般情况下我们会将翻转点1设置为TIMER的周期值,使其输出PWM波
2 SWM190 TIMER脉冲输出功能配置库函数
下面我们以脉冲输出为例,使用加强型定时器,使用TIMR0的Output Compare功能输出脉冲信号。在此例程中,我们将使用B6作为TIMER0的输出脉冲IO口,翻转点1设置为TIMER的周期值,使用脉冲输出功能输出PWM,其波形图如图表 1所示。
我们之前有讲到PORT和TIMER的配置方法,在这里就不在做赘述,将B6引脚通过PORT_Init设置为TIMER的输入功能引脚(PORTB_PIN6_TIMR0_OUT),并将TIMER0模块功能在TIMR_Init初始化为脉冲输出功能(TIMR_MODE_OC)。
我们接下来看TIMR_OC_Init(TIMR_TypeDef * TIMRx, uint32_t match, uint32_t match_int_en, uint32_t init_lvl)函数。
函数的第一个参数为TIMR_TypeDe,它是一个结构体类型,该类型在SWM190.h中被定义。具体参数为指定TIMER模块,有效值包括TIMR0,TIMR1,TIMR2,TIMR3;
第二个参数为match,为第一个翻转点,当计数器的值递减到match时引脚输出电平翻转;
第三个参数为match_int_en,为第一个翻转点中断使能,当计数器的值递减到match时是否产生中断;
第四个参数为init_lvl,为输出初始电平值;
我们的函数配置为:
TIMR_OC_Init(TIMR0, SystemCoreClock/400, 0, 1);
IMR_OC_Init函数中配置为使用TIMER0;第一个翻转值设置为SystemCoreClock/400;不使能输出PWM翻转点0;初始输出电平为高;
值得一提的是,在TIMR_OC_Init库函数中,默认将第二个翻转值配置为周期值(TIMRx-》OCMAT1 = TIMRx-》LOAD;)。
具体配置函数如下图所示:

3实验现象下载好程序后,B6脚输出初始电平为高,频率为100hz,占空比为25%的PWM。责任编辑:haq
-
mcu
+关注
关注
147文章
18604浏览量
386759 -
脉冲
+关注
关注
20文章
905浏览量
99022 -
信号
+关注
关注
11文章
2902浏览量
79661
原文标题:MCU之TIMER脉冲发送
文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
华为手机如何定时发送消息
LuatOS MCU核心库全接触:新手操作与功能测试攻略!
新手必备:LuatOS MCU核心库功能测试与实践指南
_timer_start()函数功能虽然正常,但实现是否未达预期,怎么处理?
汽车车灯线路板功能、设计与工艺,有哪些关键要点?
A25:MCU系统器件知识与应用专题--MCU、EEPROM/FLASH和晶体/晶振知识及应用案例
A25:《器件知识与应用》系列课程之MCU 预告
【RA4M2-SENSOR】3、使用GPT定时器-PWM输出
定时模块app_timer用法及常见问题—nRF5 SDK模块系列二

MCU之TIMER脉冲发送功能的知识要点
评论