I want the void setup part of the code change depending of which button is pressed.
I've tried doing like this:
bool butState = digitalRead(button1);
bool ButtonState = digitalRead(Button);
while(butState & ButtonState == false){
Serial.println("waiting for response...");
delay(1000);
}
if(button1 == HIGH){
initPPKBaseConfig();
}
else if(Button == HIGH){
initRTKBaseConfig();
}
here is whole void setup I made:
void setup(){
Serial.begin(250000); //activate serial.
Wire.begin(SDA, SCL, 400000); // begin i2c comunication.
pinMode(LED, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(green, OUTPUT);
pinMode(Button,INPUT);
pinMode(but, INPUT);
delay(5000);
Serial.println("inicializing Serial.");
delay(150);
digitalWrite(LED, HIGH);
initSDCard();
myFile = sd.open("testFolder/RXM_RAWX.ubx", FILE_WRITE);
myGNSS.setFileBufferSize(fileBufferSize); // setFileBufferSize must be called _before_ .begin
myGNSS.disableUBX7Fcheck(); // RAWX data can legitimately contain 0x7F, so we need to disable the "7F" check in checkUbloxI2C
if (myGNSS.begin() == false){
Serial.println(F("u-blox GNSS not detected at default I2C address. Please check wiring. Freezing..."));
digitalWrite(LED, HIGH);
delay(150);
digitalWrite(LED, LOW);
delay(150);
digitalWrite(LED, HIGH);
delay(150);
digitalWrite(LED, LOW);
delay(150);
digitalWrite(LED, HIGH);
delay(150);
digitalWrite(LED, LOW);
delay(150);
digitalWrite(LED, HIGH);
delay(150);
digitalWrite(LED, LOW);
delay(150);
while (1);
}
myGNSS.factoryDefault();
delay(5000);
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
myGNSS.setI2COutput(COM_TYPE_UBX); //Set the I2C port to output UBX only (turn off NMEA noise)
myGNSS.setSerialRate(921600); //921600
myGNSS.setNavigationFrequency(1); //Produce one navigation solution per second (that's plenty for Precise Point Positioning)
delay(1000);
myGNSS.enableGNSS(true, SFE_UBLOX_GNSS_ID_GPS); // Make sure GPS is enabled (we must leave at least one major GNSS enabled!)
myGNSS.enableGNSS(false, SFE_UBLOX_GNSS_ID_SBAS); // Disable SBAS
myGNSS.enableGNSS(false, SFE_UBLOX_GNSS_ID_GALILEO); // Disable Galileo
myGNSS.enableGNSS(false, SFE_UBLOX_GNSS_ID_BEIDOU); // Disable BeiDou
myGNSS.enableGNSS(false, SFE_UBLOX_GNSS_ID_IMES); // Disable IMES
myGNSS.enableGNSS(false, SFE_UBLOX_GNSS_ID_QZSS); // Disable QZSS
myGNSS.enableGNSS(false, SFE_UBLOX_GNSS_ID_GLONASS); // Disable GLONASS
delay(2000);
bool butState = digitalRead(but);
bool ButtonState = digitalRead(Button);
while(butState & ButtonState == false){
Serial.println("waiting for response...");
delay(1000);
}
if(but == HIGH){
initRTKBaseConfig();
}
else if(Button == HIGH){
initPPKBaseConfig();
}
digitalWrite(yellow, HIGH);
}