freeRTOS - problema temporizzazione blink

  1. Per evitare problemi, su Arduino usa sempre l'allocazione statica delle risorse e non quella dinamica

ok, annotato

  1. l'inizializzazione del HW si fa nel setup(), NON nei task

ok, però nell'esempio fornito a corredo della libreria l'hardware viene inizializzato nei task. Vedi esempio blink_analogRead. :sweat_smile:

su Arduino il "tick" del sistema operativo, per ragioni di compatibilità con le librerie che usano i timers, è fatto con il WatchDog ed il "tick" minimo è di 16 msec.
Task che terminano prima dello scadere del tick ritornano correttamente il controllo al SO, ma operazioni che coinvolgono i ticks vanno fatte tenendone conto.

questa era l'altra domanda che volevo fare. Quindi in pratica, se un task termina in <16ms lo scheduler fa partire subito il successivo o aspetta comunque 16ms? Immagino sia tutto scritto nelle guide ma già che ci sono ne approfitto..

Detto questo, il tuo codice riscritto correttamete diventa:

grazie, stasera lo provo :slight_smile: