写给需要的人吧。软件硬件。反馈没问题。
while(1)
{
/*485发送数据*/
DIR = 1;
for(i=0;i<10;i++)
{
CLK = 0;
DATAOUT = order[i];
delay_us(1);
CLK = 1;
delay_us(1);
}
/*发送完毕,开始接收*/
DIR = 0;
for(j=0;j<40;j++)
{
CLK = 0;
buf[j] = DATAIN;
delay_us(1);
CLK = 1;
delay_us(1);
}
DIR = 1;
delay_ms(10); //延时1us 1M
for(k=6;k<25;k++)
{
pos+=buf[k]<<(k-6);//编码器数据是高位在前,需要移下位
}
pos1 = (pos * 360.00f / 524288.00f );
pos = 0;
for(l=25;l<37;l++)
{
cir+=buf[l]<<(l-25);//编码器数据是高位在前,需要移下位
}
cir1 = cir;
cir = 0;
}