打印
[技术问答]

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

[复制链接]
1168|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
northeasttigar|  楼主 | 2019-6-10 12:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 northeasttigar 于 2019-6-10 12:40 编辑

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

使用特权

评论回复
沙发
tianxj01| | 2019-6-10 15:47 | 只看该作者
003启动时间好像就4mS吧,你应该是启动状态IO没有固定到需要电平,产生虚假输出。

使用特权

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

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

使用特权

评论回复
地板
jasontu| | 2019-6-11 08:11 | 只看该作者
應該是沒有下pwm stop的條件,直接關pwm輸出。
pwm內部還在計數。

使用特权

评论回复
5
northeasttigar|  楼主 | 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;
        }

使用特权

评论回复
6
dongnanxibei| | 2019-6-13 23:59 | 只看该作者
看看手册上这个有没有介绍。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

10

帖子

1

粉丝