#include<iom16v.h>
#define xtal 8
#define uchar unsigned char
#define uint unsigned int
unsigned char const table1[]={0xf9,0xfc,0xf6,0xf3};//正转
unsigned char const table2[]={0xf3,0xf6,0xfc,0xf9};//反转
//延时函数
void delay_1ms(void)
{
unsigned int i;
for(i=1;i<(unsigned int)(xtal*143-2);i++)
;
}
void delay(unsigned int n)
{
unsigned int j;
for(j=0;j<n;j++)
delay_1ms();
}
void main()
{
uchar i,j,n;
PORTA=0XFF;
DDRA=0Xff;
while(1)
{
j=0;
for(n=0;n<3;n++)//正转3圈
{
for(i=0;i<4096;i++)//正转1圈共4096个脉冲
{
DDRA=0x00;
DDRA=table1[j];
j++;
if(j>=4) j=0;
delay(30);
}
}
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
j=0;
for(n=0;n<2;n++)//反转2圈
{
for(i=0;i<4096;i++)//反转1圈共4096个脉冲
{
DDRA=0x00;
DDRA=table2[j];
j++;
if(j>=4) j=0;
delay(30);
}
}
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
}
}
请问这个程序错误出在哪里,怎么步进电机没反应啊。。。 |