0
我在树莓派上的C++应用程序出现问题。这个脚本应该在终止前打印一次以cm为单位的距离。但它也应该检查超声波传感器是否连接,如果不是脚本应该中断。我怎么能这样做?有没有办法为getCM()方法设置超时,或者有任何其他想法来解决这个问题? 这是代码:C++无效呼叫超时
...
void setup() {
wiringPiSetup();
pinMode(TRIG_R, OUTPUT);
pinMode(ECHO_R, INPUT);
digitalWrite(TRIG_F, LOW);
delay(30);
}
int getCM() {
digitalWrite(TRIG_R, HIGH);
delayMicroseconds(20);
digitalWrite(TRIG_R, LOW);
//Wait for echo start
while(digitalRead(ECHO_R) == LOW);
//Wait for echo end
long startTime = micros();
while(digitalRead(ECHO_R) == HIGH);
long travelTime = micros() - startTime;
int distance = travelTime/58;
return distance;
}
int main(void) {
setup();
printf("Distance: %dcm\n", getCM());
return 0;
}
在此先感谢!
Tim
我希望有人会停止调用C++程序“脚本”。 – PaulMcKenzie