专家您好,在这里向您咨询一些问题。以下是我的驱动2543的51单片机程序,分开运行采集数据的准确性和稳定性都很好,但是数据经由CAN总线发送,同时处理器也在接收数据时采集的数据就大范围摆动,经查初步确定是SJA1000的接收中断导致的,但无法解决,希望专家给予帮助,谢谢。
sbit EOC=P1^0;
sbit CLK=P1^1;
sbit INPUT=P1^2;
sbit OUT=P1^3;
sbit CS=P1^4;
unsigned char AD2543(uchar in_data,uchar j)//01 8b 00或10 12b 11 16b
{
uchar i;
uchar out_data=0;
while(!EOC);
OUT=1;
CS=0;
CLK=0;
for(i=0;i<j;i++)
{
delay(10);
OUT=1;
out_data=out_data<<1;
out_data=out_data|OUT;
in_data=in_data<<1;
INPUT=CY;
OUT=1;
CLK=1;
delay(10);
CLK=0;
}
CS=1;
return out_data;
}