程序不知道哪里没有弄好???
大家好,我是小白单片机新手。之前摸索过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); //改变这个参数可以调整电机转速
}
}
}
}