zoukankan      html  css  js  c++  java
  • W800 PWM调光LED以一定频率闪烁

    本节使用PWM输出,通过观察LED来查看PWM频率,可以调节占空比来改变LED的亮度。
    首先编写PWM配置函数,后面通过传入参数来配置:
    static int pwm_demo_allsyc_mode(u8 channel,u32 freq, u8 duty, u8 num)
    {
    pwm_init_param pwm_param;
    int ret=-1;
    tls_sys_clk sysclk;

    tls_sys_clk_get(&sysclk);
    
    memset(&pwm_param, 0, sizeof(pwm_init_param));
    pwm_param.period = 255;
    pwm_param.cnt_type = WM_PWM_CNT_TYPE_EDGE_ALIGN_OUT;
    pwm_param.loop_type = WM_PWM_LOOP_TYPE_LOOP;
    pwm_param.mode = WM_PWM_OUT_MODE_ALLSYC;
    pwm_param.inverse_en = DISABLE;
    pwm_param.pnum = num;
    pwm_param.pnum_int = DISABLE;
    pwm_param.duty = duty;
    pwm_param.channel = channel;
    pwm_param.clkdiv = sysclk.apbclk*UNIT_MHZ/256/freq;
    
    ret = tls_pwm_out_init(&pwm_param);
    
    return ret;
    

    }
    在主程序中传入配置参数,这里配置PB0引脚输出PWM,调用
    pwm_demo_allsyc_mode(u8 channel,u32 freq, u8 duty, u8 num)配置。
    括号中的第一个参数为通道序号。
    第二 个参数是期望输出的 pwm频率。
    第三个参数占空比,如此处是 99 则表示实际占空比为 99/255。
    第 四个参 数表示输出的波形周期,其中 0表示持续输 出波形。
    void UserMain(void)
    {
    printf(" user task ");
    wm_pwm0_config(WM_IO_PB_00);
    tls_pwm_stop(0);
    pwm_demo_allsyc_mode(0,20,200, 0);
    tls_pwm_start(0);//pwm启动
    }
    编译下载程序到开发板,可以看到开发板led以20HZ的频率闪烁。用户可以自行调节第二,第三个参数来改变频率,占空比,实现自己的效果。

  • 相关阅读:
    Bootstrip的相关介绍
    Django的ORM主外键约束实现
    Django基于ORM数据库配置
    Django的安装与配置
    ORM(关系对象映射)框架之面向对象
    pymysql模块的数据操作
    SQL语句实践
    mysql 数据库的基本操作语法
    算法训练 矩阵乘法
    算法训练 字串统计
  • 原文地址:https://www.cnblogs.com/doiting/p/13932920.html
Copyright © 2011-2022 走看看