• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

关于用合泰单片机写步进电机程序的问题

程序不知道哪里没有弄好???

大家好,我是小白单片机新手。之前摸索过51单片机,可以正常驱动步进电机。

刚好现在手上有些合泰的单片机,(也是第一次用)所以试着用了一下,一下就发现问题了。

还请各位帮我看看,辛苦你们谢谢了!

需要的功能:实现正反转

问题现象描述:一直朝着一个方向转,不能改变方向。????

我试着把下面的两个for上下对调了了一下,也是只能运行上面的一部分。下面的就不执行了。

观察驱动波形 不是有规律连续的脉冲,中间有间断,可能是看门狗的作用,凡是加了一条指令(_clrwdt),结果还是一样。

搞了2天了 还是不行。换过好几种不同的写法。

#include "HT66F002.h"

#define Motor_Port _pa

#define Motor_PortC _pac

const unsigned short SEG_L[]={0x01,0x02,0x04,0x20}; //正转表格,换算成二进制 0000 0001,0000 0010,0000 0100,0010 0000

const unsigned short SEG_R[]={0x20,0x04,0x02,0x01}; //反转表格,换算成二进制 0010 0000,0000 0100,0000 0010,0000 0001

void main()

    short i,j; 

    Motor_PortC=0x0; 

    Motor_Port=0x00;               

    while(1)    

   {   

        for(i=0;i<50;i++)     

       {     

            for(j=0;j<4;j++)          //4相      

           {    Motor_Port=SEG_R[j];  //输出对应的相          

                 _delay(20000);          //改变这个参数可以调整电机转速

            }     

        }            

        for(i=0;i<50;i++)        

       {     for(j=0;j<4;j++)           //4相 

             {    Motor_Port=SEG_L[j];   //输出对应的相             

                  _delay(20000);           //改变这个参数可以调整电机转速   

             }        

        }       

     }

}

全部回复(1)
正序查看
倒序查看
2019-03-26 12:11
沙发。
0
回复