Go Down

Topic: [Risolto]Multitasking con Arduino? (Read 2 times) previous topic - next topic

leo72


Come potrei fare a tenerlo acceso ad esempio per 100ms e poi spento per 5000ms? Sempre utilizzando leOS ovviamente...scusate l'ignoranza
e poi se durante l'esecuzione del programma dovessi cambiare l'intervallo di tempo in cui rimane spento? ad esempio da 5000ms a 8000 ms come dovrei fare?



Il concetti di base è la programmazione "a stati" anziché sequenziale.
Credo che leOS possa rendere l'implementazione più semplice rispetto alla tecnica "blink without delay" nuda e cruda (anche se in questo caso sarebbe più che sufficiente IMHO). Ma se non si acquisisce il concetto di "stato" la vedo dura...


Sì, devi lavorare a "stati". Cioè fissare uno "stato led", che poi modifichi tramite software.
Posso darti un suggerimento. Usa un task non solo per cambiare lo stato del led ad intervalli regolari (altrimenti viene un'onda quadra con d.c. al 50%,) ma con delle variabili controllare quanto il led deve stare acceso e quanto spento.

Quote

Ho letto sulla tua guida in pdf che hai implementato la funzione
Code: [Select]
myOS.modifyTask(yourFunction, newInterval [, newTaskStatus]);
ma vale anche per la libreria leOS? o solo per leOS2?

Le funzioni delle 2 versioni sono identiche, cambia solo il minimo intervallo selezionabile. Nel leOS questo è 1 ms, nel leOS2 questo è pari a 16 ms, il minimo intervallo selezionabile per il contatore del Watchdog.
Quindi se vuoi eseguire qualcosa ogni 2 ms il leOS2 non va bene. Per contro, il leOS entra in conflitto con tutto quello che usa il timer 2 mentre il leOS2 no. Devi vedere quale fa al caso tuo. A meno di usi con cose particolari (vedi ad esempio la Tone o altro) che fanno uso di quel timer, la leOS è da preferire. La leOS2 è ancora in beta (ho una cosa da sistemare che non mi torna del tutto).

MauroTec

#11
Dec 08, 2012, 06:39 pm Last Edit: Dec 08, 2012, 06:42 pm by MauroTec Reason: 1
Per Multitasking c'è questo microcontroller che costa davvero poco e li hai almeno 8 core a disposizione.
http://www.xmos.com/discover/why/how

Certo che ci sarebbe da farne una simil arduino a 500MHZ se si considera che costa meno del 328, purtroppo gcc non produce codice per questa architettura.

Ciao.

http://www.digikey.com/product-detail/en/XCARD%20XK-1A/XCARD%20XK-1A-ND/2183685?cur=USD

Solo 59 dollari? ci vedo male io? dovè la fregatura?


AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

tuxduino


leo72


Per Multitasking c'è questo microcontroller che costa davvero poco e li hai almeno 8 core a disposizione.
http://www.xmos.com/discover/why/how

Certo che ci sarebbe da farne una simil arduino a 500MHZ se si considera che costa meno del 328, purtroppo gcc non produce codice per questa architettura.

Ciao.

http://www.digikey.com/product-detail/en/XCARD%20XK-1A/XCARD%20XK-1A-ND/2183685?cur=USD

Solo 59 dollari? ci vedo male io? dovè la fregatura?




Bello!  :D

uwefed


Solo 59 dollari? ci vedo male io? dovè la fregatura?

Che non é cosí semplice a programmarlo come Arduino.  ;) ;) ;)
Ciao Uwe

Go Up