1715|0

501

帖子

4

TA的资源

纯净的硅(高级)

【RTT&英飞凌PSoC6评估板(带触摸)】+ PWM输出测试 [复制链接]

前言

这一篇来进行PWM输出的实现与测试,后面我们会基于PWM进行音乐播放和打碟器的实现。使用示波器测量来确定占空比和频率的准确性。

 

代码

在前面https://bbs.eeworld.com.cn/thread-1247060-1-1.html的基础上进行。

 

PWM初始化

 cy_rslt_t pwm_initialize(void)

{

    cy_rslt_t rslt;

 

    rslt = cyhal_pwm_init(&pwm_led, P11_1, NULL);

 

    if (CY_RSLT_SUCCESS == rslt)

    {

        rslt = cyhal_pwm_set_duty_cycle(&pwm_led,

                                        50,

                                        10000);

        if (CY_RSLT_SUCCESS == rslt)

        {

            rslt = cyhal_pwm_start(&pwm_led);

        }

 

    }

 

    return rslt;

}

设置占空比和频率

 

cy_rslt_t pwm_setduty(uint8_t duty, uint32_t freq)

{

    cy_rslt_t rslt;

 

    cyhal_pwm_stop(&pwm_led);

    cyhal_pwm_set_duty_cycle(&pwm_led,duty,freq);

    rslt = cyhal_pwm_start(&pwm_led);

    return rslt;

}

测试代码main函数中

    pwm_initialize();

    pwm_setduty(50, 10000);

    for (;;)

    {

}

我们使用P11.1作为PWM输出测试。

image-20230618133655-1.png  

image-20230618133655-2.png  

准确性测试

设置50%占空比1000Hz

pwm_setduty(50, 1000);

实测50% 1.01KHz

 

image-20230618133655-3.jpeg  

设置50%占空比10000Hz

pwm_setduty(50, 10000);

实测49.99% 10.09KHz

image-20230618133655-4.jpeg  

设置80%占空比1000Hz

pwm_setduty(80, 1000);

实测80% 1.01KHz

image-20230618133655-5.jpeg  

设置80%占空比10000Hz

pwm_setduty(80, 10000);

实测79.98% 10.09KHz

image-20230618133655-6.jpeg  

 

 

考虑到测量误差,上述结果可以看到时间是准确的。

 

总结

使用官方的库函数,HAL接口进行外设操作比较简单,PWM操作几个接口就完成了,非常方便。

此帖出自ARM技术论坛

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表