[技术问答] N76E003 PWM启动第一个脉宽有时有4MS宽度,是哪里问题!

[复制链接]
293|5
 楼主 | 2019-6-10 12:39 | 显示全部楼层 |阅读模式
本帖最后由 northeasttigar 于 2019-6-10 12:40 编辑

N76E003 PWM启动第一个脉宽有时有4MS宽度(设置为50KHZ 50%DUTY 正常应该为10US),是哪里问题? 这个长脉宽,有时没有,有时有,无规律。请教大神!

使用特权

评论回复
| 2019-6-10 15:47 | 显示全部楼层
003启动时间好像就4mS吧,你应该是启动状态IO没有固定到需要电平,产生虚假输出。

使用特权

评论回复
 楼主 | 2019-6-10 19:20 | 显示全部楼层
tianxj01 发表于 2019-6-10 15:47
003启动时间好像就4mS吧,你应该是启动状态IO没有固定到需要电平,产生虚假输出。 ...

谢谢解答,这个不是上电时间,是上电后的多次PWM关,开出现的,单纯设定DUTY从0   到50%也会出现这种状况

使用特权

评论回复
| 2019-6-11 08:11 | 显示全部楼层
應該是沒有下pwm stop的條件,直接關pwm輸出。
pwm內部還在計數。

使用特权

评论回复
 楼主 | 2019-6-11 08:55 | 显示全部楼层
jasontu 发表于 2019-6-11 08:11
應該是沒有下pwm stop的條件,直接關pwm輸出。
pwm內部還在計數。

谢谢!您说的PWM STOP条件是指的哪个条件?我用的如下函数:
void Pwm_Turn_Off(void)
{
        while(LOAD);
        clr_LOAD;
        clr_PWMRUN;
}
DUTY 设定用的如下函数:
void Pwm_SetDuty(uint8_t duty)
{
        uint16_t reg;
        uint8_t dut;
       
        reg=frq;
        dut=duty;
        reg *= dut;
        reg /= 100;
       
        PWM0H = (uint8_t)(reg >> 8);
        PWM0L = (uint8_t)(reg);       
        PWM2H = (uint8_t)(reg >> 8);
        PWM2L = (uint8_t)(reg);               
        while(LOAD);
        set_LOAD;
        }

使用特权

评论回复
| 2019-6-13 23:59 | 显示全部楼层
看看手册上这个有没有介绍。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表