ESP8266 Developer Zone The Official ESP8266 Forum 2016-05-25T13:55:41+08:00 https://bbs.espressif.com:443/feed.php?f=7&t=2099 2016-05-25T13:55:41+08:00 2016-05-25T13:55:41+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2099&p=7070#p7070 <![CDATA[Re: PWM调制波形异常。]]> 1.在原始的period周期之外,外加一个100us的时间进行duty的微调。
2.在微调的时间内,不能达到100%的高电平(毛刺就是微调)。
3.这样做的优点是总体的精度变高(周期越大,精度也会越高)。缺点是在duty接近100%时的,精度会变低(因为duty高时,精度低肉眼不易察 觉)。

实际上,我们还有另外一种PWM工作方式,可以到达100% Duty,周期也是准的,但总体精度可能没有这种方式高。

请参考 http://bbs.espressif.com/viewtopic.php?f=31&t=1378

Statistics: Posted by ESP_Alfred — Wed May 25, 2016 1:55 pm


]]>
2016-04-27T16:45:19+08:00 2016-04-27T16:45:19+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2099&p=6634#p6634 <![CDATA[PWM调制波形异常。]]>
设置period=1000,duty=11111;希望调出周期1ms,占空比50%的波形。实际结果如附件图。
出现72us不明脉冲,周期1.10024ms,不能达到需求。

请问是否是正常情况,如不是该如何修正。

Code:

void ICACHE_FLASH_ATTR
at_setupCmdPWM(uint8_t id, char *pPara)
{
    int result = 0, err = 0, flag = 0;

    pPara++; // skip '='
   uint32 period;
   uint32 duty;

    flag = at_get_next_int_dec(&pPara, &period, &err);
   if (*pPara == ',') {
         pPara++; // skip ','
         flag = at_get_next_int_dec(&pPara, &duty, &err);
    }
   pwm_set_duty(duty,0);
   pwm_set_period(period);
   
   pwm_start();
   at_port_print("\r\nPWM Start!\r\n");
    at_response_ok();
}
20160427162548.jpg

Statistics: Posted by fan123450 — Wed Apr 27, 2016 4:45 pm


]]>