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

本文介绍了华芯微特公司的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;)。
具体配置函数如下图所示:


三星note8什么时候上市?前后双摄+指纹后置+极窄边框, 三星note8颜值逼人性能足以傲视群雄
高通与华为协商专利授权费体现后者专利实力的上升
又一批EMUI 10.1全面开放升级机型公布,数量多达13款,又创新高
第三季度的全球智能手机市场 三星、华为和苹果的出货量分列前三位
第八届国际农航技术装备展将于明年4月份正式开展
MCU之TIMER脉冲发送功能的知识要点
晶体管和芯片的关系介绍
SoC上市行列添新翼 机器视觉芯片国产化正提速
5G:NR-U是什么?
关于回流焊工艺发展的讨论
配电柜的种类有哪些 配电柜内部组成配件有哪些
普通PCB、HDI、IC载板技术参数比较
福禄克网络助阵"一带一路"国际技能大赛
距离无线充电替代有线充电还有多远
汽车电子关键技术、创新产品及未来合作的机会
WSN的应用及其标准发展
蜗轮蜗杆减速机降温方法_蜗轮蜗杆减速机拆卸步骤
贸泽开始分销全新Pinnacle 100蜂窝调制解调器
很壕!卡塔尔世界杯用2200亿美金,告诉市场IoT未来可期
基于一款80C51微控制器实现智能测试系统的设计