通过调整驱动函数,可以使W600的PWM输出更加详细的频率,当然这是以牺牲占空比的可调度为代价的。因为占空比有频率共同分享了从时钟时钟总线上所分得的频率;

如果你对占空比需要不大,就可以通过修改驱动函数来输出更加详细的频率,官方sdk里默认可调的占空比分辨率为 1/256;

如果下为默认的驱动及修改后的驱动,修改后的驱动能够输出最详细的频率:

int tls_pwm_init(u8 channel,u32 freq, u8 duty, u8 pnum)
{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_INDPT;pwm_param.inverse_en = DISABLE;pwm_param.pnum = pnum;pwm_param.pnum_int = DISABLE;pwm_param.duty = duty;pwm_param.channel = channel;pwm_param.clkdiv = sysclk.apbclk*UNIT_MHZ/256/freq;
//  printf("clkdiv:%d\n", pwm_param.clkdiv);ret = tls_pwm_out_init(pwm_param);
//    tls_pwm_start(channel);return     ret;
}
int tls_pwm_init(u8 channel,u32 freq, u8 duty, u8 pnum)
{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 = 1;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_INDPT;pwm_param.inverse_en = DISABLE;pwm_param.pnum = pnum;pwm_param.pnum_int = DISABLE;pwm_param.duty = duty;pwm_param.channel = channel;pwm_param.clkdiv = sysclk.apbclk*UNIT_MHZ/2/freq;
//  printf("clkdiv:%d\n", pwm_param.clkdiv);ret = tls_pwm_out_init(pwm_param);
//    tls_pwm_start(channel);return     ret;
}

调整 W600 PWM的输出频率相关推荐

  1. apm32f103c8t6 通过定时器1的PWM功能输出频率3mhz占空比50%的方波

    利用apm32f103c8t6 定时器1的PWM功能输出频率3mhz占空比50%的方波,实际效果却达不到,频率大概3mhz左右,占空比在54%左右,或者占空比50%左右,频率就3.2mhz左右了,总有 ...

  2. 定时器PWM波输出频率问题

    平台:STM32 功能:多个定时器输出多路PWM波. 现象:相同ARR及CCR,输出PWM波频率不同. 详细:这类问题通常涉及到定时器时钟源的问题,STM32F4的TIM1与其他定时器不同,不在同一条 ...

  3. W600 PWM捕获功能

    之前理解过,可是因为没有实践所以不够深刻,现在问了下同事就又想起来了,这里记录一下: PWM捕获有两个相关的寄存器,分别存放pwm输入口所输入的波形的高电平持续时间和低电平持续时间, 每来一个周期,数 ...

  4. W600 PWM 捕获功能使用示例程序

    使用DMA的方式来捕获输入波形中一个周期内的高低电平的持续时间,从而计算出输入频率: 捕获分辨率在这里设置到了1us: /*************************************** ...

  5. arduino教程-7.脉冲宽度调制【变频】pwm

    目录 主要内容 7.1 PWM的基本原理 7.2 基本PWM信号 周期 占空比 7.3 调节电压变化 7.4 模式输出(PWM)指令和默认频率 7.4.1 analogWrite()函数 7.4.2 ...

  6. 【转载】 stm32之PWM

    发现这位博主的博客被大量的转发,我也转载一篇,谁叫人家写的好呢. 原文地址:http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html 脉冲宽度调制(PW ...

  7. pwm一个时间单位_解读:什么是PWM“死区”?

    PWM是脉宽调制,在电力电子中,最常用的就是整流和逆变.这就需要用到整流桥和逆变桥.对三相电来说,就需要三个桥臂.以两电平为例,每个桥臂上有两个电力电子器件,比如IGBT.这两个IGBT不能同时导通, ...

  8. 单片机c语言pwm整流的程序,基于 单片机控制PWM整流电源的设计.doc

    PAGE \* MERGEFORMAT II 摘??? 要 本文介绍了用PWM实现直流电机调整的基本方法.本文在给出直流电机调整和PWM实现方法的基础上,提供一种用单片机软件实现PWM调速的方法,以及 ...

  9. linux pwm 调屏_Linux驱动学习之:PWM驱动

    PWM(Pulse Width Modulation)--脉宽调制,它是利用微控制器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量.通信.功率控制与变换等许多领域. s3c2440 ...

最新文章

  1. 《HTML5移动应用开发入门经典》—— 2.4 HTML5中的HTML语法变化
  2. python中序列和列表区别细菌真菌病毒_python是哪种动物_动物的分类
  3. 前端学习(2275)初始化react
  4. 【转】4.2SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 2)
  5. python多进程并发与pool多线程
  6. oracle中累计求和_Excel中常见的7种求和公式
  7. 轻飘飘的旧时光就这么溜走
  8. Spring Cloud Feign 1(声明式服务调用Feign 简介)
  9. POJ 2117 Electricity 双联通分量 割点
  10. python 字符串前面的“r“是个啥?
  11. 计算机质量检测技术,计算机技术在建材质量检测中的应用分析
  12. 第一次用python写爬虫
  13. 为人“着想”和站在别人的角度--7-11创始人的经营理念引发的管理思考
  14. 延长SQLyog试用期
  15. android sqlite存对象,【Android基础】Android SQLite存储自定义对象
  16. using werkzeug to build a shorly url app
  17. 学习笔记之——非线性优化的解读
  18. 【GNN报告】ICT敖翔:图机器学习应对金融欺诈对抗攻击
  19. C++虚函数表的应用
  20. 一款非常好用的图片无损放大工具:Topaz Gigapixel AI

热门文章

  1. 综合-某假期欢乐赛 (Apri, 2018)
  2. PHP预定义常量DIRECTORY_SEPARATOR
  3. [转]F# Samples 101 - Visual Studio 2010
  4. 【mysql 】sql删除重复记录 You can't specify target table '表名' for update in FROM clause
  5. 软件项目版本号的命名格式
  6. 用神经网络分类左和右
  7. 学习率对神经网络的影响-乙烷,乙烯,乙炔的分子模型试验数据对比
  8. ps怎么把一个颜色替换成另一个颜色_常用的60个PS技巧,助你成为PS大神!
  9. 【STM32】输入捕获实验代码详解
  10. STM32 ADC 同步规则模式 ADC1与ADC2同用一个DMA