leOS, pauseTask e restartTask!

leo72:
Resto in attesa anche se prima di domani sera non ti potrò rispondere - domani giornata pienissima.

Ieri non ho potuto rispondere, allora ho risolto ma il problema non stava nel "volatile".
Procedo per passi:
-Entro la prima volta nella funzione che mi interessa.
-Si avviano i task leOS e tutto va bene.
-Si attiva tra questi un'altro task che rileva la pressione del pulsante per uscire dal menu.
-alla pressione di quel pulsante viene chiamata una funzione: returnToMenu();
-chiamato returnToMenu() la prima volta funzione tutto, ma returnToMenu() fa diverse cose, arresta i task, ripristina variabili, ed in più, spegne un led ir che utilizzo per mandare un segnale. Per spegnere il led chiamo un funzione turn_off_IR() che fa questo (se ricordi bene questa funzione mi fu data in un topic dove parlammo di una barriera ir, la funzione fa questo:

void turn_off_IR ()
{
// TCCR2A = 0; // Disconnect PWM
  //TCCR2B = 0; // Stops the timer
  //OCR2A = 0;  // No timer top
  digitalWrite(irLED, LOW);  // Ensure output is off
  
}

Ora non ho debuggato tutto ma così con quelle righe commentate non si blocca più! Uso turn_off_IR() per spegnere un led ir sul pin 11 che invia un segnale a 38Khz, credo che userò comunque il metodo che mi dicesti stesso tu per fermare il segnale ir a 38Khz, che se non ricordo male era mettere il pin 11 prima in input e poi in output..

In conclusione comunque, leOS non era, ed è sempre più un divertimento usare quei task a piacimento!:slight_smile:

Rinnovo quindi i miei complimenti per leOS :wink: