programmazione thread

ciao a tutti, ho la necessità di programmare arduino in parallelo, con precisione mi serve comandare la velocità di due motori ed in "contemporanea" (all'occhio umano) leggo dei sensori. Volevo quindi chiedere se qualcuno di voi sa se arduino supporta i thread e se conoscete un buon sito dove leggere qualcosa. In alternativa come posso risolvere il problema in modo efficiente? usando una variabile di controllo (usata tipo flag) da settare in caso di necessità? grazie in anticipo delle risposte,

Niccolò

"All'occhio umano"... mi lascia intendere che ritardi dell'ordine di 50 ms sarebbero perfettamente compatibili con il tuo progetto. Spiega meglio cosa vuoi fare. Direi - così a occhio umano XD - che puoi farlo senza thread.

I thread non sono supportati dalla MCU. Se vuoi leggere qualcosa, io ho sul mio sito (link in calce) scritto 3 scheduler, di cui uno basato su millis (looper) e gli altri 2 basati su interrupt (leOS e leOS2). Forse potrebbero aiutarti nel tuo progetto.

il sito era in manutenzione e sono riuscito ad accedere solo ora, prima di tutto vi ringrazio per le risposte, in poche parole sto cercando di costruire un rover explorer (di cui seguirà dettagliata descrizione e magari anche una guida se va tutto come previsto) da controllare tramite moduli Xbee e due arduino: arduino1 invia i comandi appresi tramite tastierino numerico e joystick a arduino2 attraverso i moduli xbee. arduino2 sarà posizionato sul rover e dovra gestire i motori e trasmettere i valori dei sensori a arduino1. il "problema" è che se sto leggendo i sensori non posso controllare i movimenti. @leo: ho scaricato i file, domani ci do un occhiata, grazie mille! hai anche qualche guida?

oggi sono riuscito a dare un occhio a leOS, FANTASTICO! grazie mille leo, è proprio quello che cercavo! se non sbaglio l'unica cosa che devo fare è creare un task per la gestione motori e un secondo task per la gestione sensori e interfaccia utente giusto?

leOS è un piccolo scheduler, non è un vero RTOS. Può darti una mano, in cambio chiede che i task siano semplici (ossia che la loro esecuzione non prenda molto tempo) né che contengano istruzioni o chiamate a funzioni bloccanti. In un task non puoi utilizzare altro che fa uso di interrupt (per via del fatto che i task sono già essi eseguiti all'interno di interrupt).

risolto, grazie mille Leo72!!

;)