微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于L7010R马达芯片驱动电动机的问题

关于L7010R马达芯片驱动电动机的问题

时间:10-02 整理:3721RD 点击:
不知道是不是这种马达驱动芯片有记忆的功能,我让它正转,然后停止,最后再反转结束。可是实际结果是一直转——停——转——停如是循环。各位资深前辈能看出究竟是什么问题吗?
#include
sbit P3_5=P3^5;
sbit P3_6=P3^6;
#define UINT8 unsigned char
void delay(unsigned int n)
{
unsigned int i,j;       
for(i=n;i>0;i--)
for(j=110;j>0;j--)
        {;}
}
void main()
{
UINT8 a=0,b=0;
        P3_6=1;
        P3_5=0;         

   for(b=0;b<2;b++)
        {delay(4000);}
        P3_6=0;
        P3_5=0;       
       
        for(a=0;a<2;a++)
        {delay(4000);}
        P3_6=1;
        P3_5=0;         

        while(1);

         
}

你的换向语句在哪里,你自己写不就是一个方向转么,最后一段是P3_5置1才是

不好意思,那个写错了。不过我的要求是先正转,然后停,最后反转。可是实际情况是一直转动,停止,转动,停止啊。不知道为什么

那你就不要用while(1)啊,这样不就是一直重复在执行嘛,你多加一个判断条件,就可实现单次执行了

已经解决了,我烧写的时候把允许低压复位的钩去掉了,就可以了。也许就是使用同一个电源的情况下,驱动大功率电机时(尤其是电动机启动时),如果电源功率不够大,电源电压会掉落太多,导致单片机低电压复位重启。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top