int main(){ //wiringPi check showError(); // ctl + c ...exiting (void)signal(SIGINT,control_event); (void)signal(SIGQUIT,control_event); //gnuplot file gnuPlotOpenfile(); //sensor initial sensorInit(); printf("....start loop....\n"); while(1) { //accel getAccelValue(); accelCalculate(); //gyro getGyroValue(); gyroCalculate(); //mag getMagValue(); //baro getBaroValue(); //filter sensorFilter( pitchRatio, rollRatio, yawRatio, altitudeRatio ); //put data to file gnuPlotPutToFile(dataNum); printResult(); delay(10);//+40(in getTempValue)....sampling time dataNum++; } }
void movePaddle() { int curr_accel_val = getAccelValue(); int accel_delta = curr_accel_val - last_accel_val; last_accel_val = curr_accel_val; // if switch1 is on, use absolute position // else use relative position if (is_switch2()) { if (getAccelValue() < -8) { rand(); dirPaddle = -1; } else if (getAccelValue() > 8) { dirPaddle = 1; } else { dirPaddle = 0; // no movement } } else { if (digitalRead(button1) == HIGH && digitalRead(button2) == LOW) { rand(); dirPaddle = 1; } else if (digitalRead(button2) == HIGH && digitalRead(button1) == LOW) { dirPaddle = -1; } else { dirPaddle = 0; } } int paddle_limit = is_switch2() ? 2 : 1; for (int i = 0; i < paddle_limit; i++) { if (dirPaddle == 1) { if (paddle_y1_posn <= 20) { paddle_y1_posn += 1; paddle_y2_posn += 1; } else { dirPaddle = -1; } } else if (dirPaddle == -1) { if (paddle_y1_posn >= 1) { paddle_y1_posn -= 1; paddle_y2_posn -= 1; } else { dirPaddle = 1; } } render_paddle(); } }