我想在一个 PIC16F877A 上运行两个 HC-SR04 并将两个超声波测量的值发送到串口。
这是我使用 PIC C 编译器的代码:
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#define e1 PIN_B6
#define t1 pin_B7
#define e2 pin_B4
#define t2 pin_B5
int a;
int distanse(int,int);
void main()
{
while(1){
int u1,u2;
u1=distanse(e1,t1);u2=distanse(e2,t2);
printf("%3u", u1);
printf("%3u", u2);
delay_ms(1000);
}
}
int distanse(int e,int t){
long long counter=0;
output_bit(t,1);delay_us(10);output_bit(t,0);
a=input(e);
while(a==0){a=input(e);}
while(a==1){counter=counter+1;a=input(e);}
return counter/3.333333;
}
但是计算机收到随机值!问题是什么 ?