Go Down

Topic: ArduinoDue Scheduler (Read 944 times) previous topic - next topic

leo72


grazie Leo,

quindi sarebbe plausibile il fatto che mi si resetti o si blocchi arduinodue in caso di posizionamento errato di yield();?

Senza vedere il codice non so dirti.
Inoltre lo scheduler della Due, come hai visto, è ancora bollato come "sperimentale" per cui potrebbe essere anche buggato di suo.

Quote

stasera ci riprovo :)

grazie :)

kattivik76

Sono reperibile fino alle 2:00  :smiley-sweat:

kattivik76

Eccomi dopo varie prove :)

Da quello che ho potuto vedere lo scheduler funziona come il "vecchio" doevent() di visual basic ;)

mio avviso il tutorial non è chiaro per niente!!!

Per restituire il controllo al task in un ciclo do{} l'istruzione yield() deve essere inserita al suo interno, così come per tutti gli altri task creati, il delay() non restituisce il controllo a nessun task ;)

Grazie delle info ;)
kattivik76
Sviluppo e realizzazione  Progetti Arduino
Teamspeack -> Arduino.cc -> 79.38.142.178:9987

leo72


mio avviso il tutorial non è chiaro per niente!!!

Concordo  ;)

Quote

Per restituire il controllo al task in un ciclo do{} l'istruzione yield() deve essere inserita al suo interno, così come per tutti gli altri task creati, il delay() non restituisce il controllo a nessun task ;)

Non ho fatto tesk, avevo solo provato l'esempio Multiblink.

Quote

Grazie delle info ;)

Prego  ;)

kattivik76

Eccomi di nuovo alla carica,

Utilizzo lo scheduler con buoni risultati, ma non è quello che cerco... Nel senso, ho un motore stepper ed un LCD I2C... Ed ecco il domandone che già immagini:

Come posso implementare un interrupt al mio progetto?

Ovviamente al momento se libero il codice che mi visualizza i dati sul display, il motore subisce una drastica riduzione degli impulsi... Inevitabile visto che il tutto funziona sul clock di sistema ed è subordinato a tempi di delay prestabiliti di 10microsecondi...

Grazie ;)

Saluti kattivik76
kattivik76
Sviluppo e realizzazione  Progetti Arduino
Teamspeack -> Arduino.cc -> 79.38.142.178:9987

leo72

Vorresti inserire la gestione del motore in interrupt, giusto?
In questo modo la renderesti indipendente dal pilotaggio del display e dal resto del codice.
Si può fare, dovresti usare un timer, impostarlo per un overflow ogni 10 us e dentro all'ISR mettere il codice per pilotare il motore.

Go Up