problema conteggio

ciao a tutti, ho un problema, il programma funziona correttamente quando secondi e' inferiore a 59 , ma quando ricezio e' da 60 in su nel momento che (!radio.available())non avviene la somma ricezio = secondi + 4; e di conseguenza ricezio resta sopra a 60
nel programma e' sempre piu alto di 4 per questo comando if (ricezio < secondi)
come posso fare in modo che funzioni come da 0 a 59?
praticamente se non ho comunicazione ricezio resta sempre sullo stesso valore(se questo avviene quando secondi e' tra 56 e 60
spero di farmi capire....
grazie

  if (ricezio < secondi) { //se ricezio e' inferiore a
    radio.powerDown();         //  data.secondopower Down rf24
    Serial.println("enterSleep()");
    enterSleep();                     // metto in sleep
    while (1);// marco: emulo lo sleep
  }
  wdt_reset();                //resetto  watchdog
  radio.powerUp();             // //power up rf24
  if (millis() - tempo1 > t_intervall) { //azioni da fare
    tempo1 = millis(); //ogni  interval1=5 ms
    radio.startListening();
    while (radio.available()) {
      digitalWrite(POWER, LOW);
      
      ricezio = secondi + 4; //andra in sleep dopo 5 sec dall'ultima ricezione.id dal rx
      

      dopo = millis();       //memorizzo tempo dopo
      digitalWrite(L_DAT, HIGH);
      radio.read(&ricezione, sizeof(ricezione));
    }
  }
  delay(5);   
  radio.stopListening();
  digitalWrite(L_DAT, LOW);
  radio.write(&data, sizeof(data));
 
  
  data.secondo = secondi;
  data.minuto = minuti;
  data.V_batt = volt;
  tempo();
  temperatura();
  pulsanti();
 
}
void tempo() {
  if (millis() - secondiMillis > 600) { //azioni da fare
    secondiMillis = millis(); //ogni  interval2=1000 ms
   

    secondi = secondi + 1;
   
    if (secondi >= 60) {
      secondi = 0;
      minuti = minuti + 1;
    }
    if (minuti >= 99) {
      minuti = 0;
    }
  }
}