Go Down

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



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

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



Si trattase solo di questo io non lo vedrei come una fregatura, la fregatura io la vedo in cose di questo tipo:
L'ide c'è solo per windows.
Lo sviluppo e chiuso e quindi anche gli schemi.
Devo spendere cifre che non posso permettermi solo per sperimentare.

E per adesso sembra non esserci alcuna fregatura in quanto:
L'ide è multi piattaforma, quindi anche linux e c'è un plugin per eclipse.
Il compilatore è un mix di gcc e altro codice per il parallelismo, quest'ultimo non so se è proprietario?
Il costo è ridicolo, specie se guardate questo link http://www.cooking-hacks.com/indexa.php/shop/shields/xmos-processor-xs1-l1-64.html
dove si vede che il micro costa 2.00 euro.


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

leo72

Una cosa non la capisco. Sembra che ci sia solo SRAM per accogliere il programma ed i dati, ed 8 KB di ROM per il bootloader. Ma se stacco l'alimentazione il firmware viene perso?

hermit274

Ciao ragazzi. scusate se rispondo in ritardo. a quanto pare avevate ragione! la programmazione utilizzando i delay è proprio penosa! purtroppo, da principiante, nn pensavo che mettendo un delay qui e un altro li rallentare così tanto l'esecuzione del loop!
cmqe ieri sera ho sbattuto un pò e sono riuscito a eliminare tutti i delay utilizzando le librerie Metro.h


Ciao ragazzi. scusate se rispondo in ritardo. a quanto pare avevate ragione! la programmazione utilizzando i delay è proprio penosa! purtroppo, da principiante, nn pensavo che mettendo un delay qui e un altro li rallentare così tanto l'esecuzione del loop!
cmqe ieri sera ho sbattuto un pò e sono riuscito a eliminare tutti i delay utilizzando le librerie Metro.h


Errore comune, forse una introduzione ad arduino ed in genere alla programmazione su microcontroller ti avrebbe posto subito in evidenza la limitazione del delay, ma questo potrebbe scoraggiare molti appassionati che non avrebbero mosso neanche i primi passi usando il delay.

In altre parole, sbatterci il muso è meglio, chiedere lumi è meglio che fare da soli.

Ora che sai come fare per evitare il delay ti posso dare altri consigli.
In generale:
Conviene sempre spezzare il programma in tante funzioni che svolgono compiti che si esauriscono in breve tempo: es ti ritrovi a dovere ordinare
un'array di nomi, il che richiede 1 minuto, in questo tempo le altre parti del programma sono isolate e non vengono eseguite. Con gli interrupt attaccati sul timer si risolve. Ad esempio la leOS usa l'interrupt sul timer2 che interrompe periodicamente l'esecuzione di ordinamento di prima, controlla cosa c'è da fare, la fa ed esce ed il controllo ritorna alla routine di ordinamento. Il risultato è che l'ordinamento magari ci impiega più tempo ma almeno le altre parti del programma vengono eseguite periodicamente.

Conviene impiegare un po del proprio tempo a raggionare su questa cosa degli interrupt fino a mettere in evidenza i comportamenti negativi oltre che quelli positivi. Uno dei comportamenti negativi si ha quando uno o più pin devono cambiare di stato con tempistiche ristrette, in questo caso il codice che governa questi pin non deve essere interrotto pena il mancato rispetto delle tempistiche.


Una cosa non la capisco. Sembra che ci sia solo SRAM per accogliere il programma ed i dati, ed 8 KB di ROM per il bootloader. Ma se stacco l'alimentazione il firmware viene perso?


Neanche io capisco come stanno le cose, ho provato a scaricare il datasheet ma devo iscrivermi e al momento non mi va. Tra le altre cose la memoria di 8K e di tipo OTP e non so quante volte può essere scritta. Insomma finche non si ha accesso totale alla doc rimangono tante domande e poche risposte imprecise.

Comunque se c'è interesse verso questa architettura apro un post nella sezione generale. Mi chiedo cosa pensa Astro di questa architettura, magari lui ne sa già qualcosa in più di noi e può far luce.

Ciao.

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

uwefed

Allora parliamo di un Arduino MEGA?
La RAM puó essere scritta e letta infinte volte. La Flash ha un numero limitato di scritture/cancellazioni. Nella flash é memorizzato il Bootloader e il programma e non viene modificato durante l'esecuzione del programma ma solo quando fa un upload /programmazione. Un Kontroller in un dispositivo di orma viene programmato poche volte, una volta all inizio e dopo a qualche update del programma. Un dispositivo che usi come prototipo per scrivere e verificare il programma subbisce molte piú programmazioni ma starai anche dopo anni sempre sotto il valore massimo di scritture garantite.

Ciao Uwe


Allora parliamo di un Arduino MEGA?
La RAM puó essere scritta e letta infinte volte. La Flash ha un numero limitato di scritture/cancellazioni. Nella flash é memorizzato il Bootloader e il programma e non viene modificato durante l'esecuzione del programma ma solo quando fa un upload /programmazione. Un Kontroller in un dispositivo di orma viene programmato poche volte, una volta all inizio e dopo a qualche update del programma. Un dispositivo che usi come prototipo per scrivere e verificare il programma subbisce molte piú programmazioni ma starai anche dopo anni sempre sotto il valore massimo di scritture garantite.

Ciao Uwe


No non parliamo della MEGA.
OT (
uwe, esiste ancora la casa tedesca FUST?
Mi sono ritrovato davanti una lavastoviglie carro armato con quel marchio.
Cioè la lamiera della mia auto è spessa la metà di quella della lavastoviglie, vi lascio immaginare il peso.)

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

leo72


Conviene sempre spezzare il programma in tante funzioni che svolgono compiti che si esauriscono in breve tempo: es ti ritrovi a dovere ordinare
un'array di nomi, il che richiede 1 minuto, in questo tempo le altre parti del programma sono isolate e non vengono eseguite. Con gli interrupt attaccati sul timer si risolve. Ad esempio la leOS usa l'interrupt sul timer2 che interrompe periodicamente l'esecuzione di ordinamento di prima, controlla cosa c'è da fare, la fa ed esce ed il controllo ritorna alla routine di ordinamento. Il risultato è che l'ordinamento magari ci impiega più tempo ma almeno le altre parti del programma vengono eseguite periodicamente.

Esattamente! Questo è il corretto uso del leOS.
Ricordo che se poi inseriamo nel task operazioni semplicissime alla fine l'interruzione è quasi inavvertibile.

Quote


Una cosa non la capisco. Sembra che ci sia solo SRAM per accogliere il programma ed i dati, ed 8 KB di ROM per il bootloader. Ma se stacco l'alimentazione il firmware viene perso?


Neanche io capisco come stanno le cose, ho provato a scaricare il datasheet ma devo iscrivermi e al momento non mi va.

Idem. Non capisco perché per scaricare i datasheet bisogna iscriversi.

Quote

Tra le altre cose la memoria di 8K e di tipo OTP e non so quante volte può essere scritta. Insomma finche non si ha accesso totale alla doc rimangono tante domande e poche risposte imprecise.

Qui credo che sia come il bootloader inserito nel SAM3X dell'Arduino DUE ossia che è scritto direttamente da Atmel e, come ha detto tempo fa Banzi in merito proprio ad un mio dubbio sul bootloader del chip, è fatto apposta così per non essere toccato dall'utente.

In definitiva, il programma deve risiedere per forza nella SRAM, non vedo altre memorie in questi Xcore. Ma qui ho timore che ci sia qualcosa di poco chiaro: siccome la SRAM è memoria volatile, se stacco l'alimentazione il programma se ne va, non ci possono essere storie.

uwefed



Allora parliamo di un Arduino MEGA?
La RAM puó essere scritta e letta infinte volte. La Flash ha un numero limitato di scritture/cancellazioni. Nella flash é memorizzato il Bootloader e il programma e non viene modificato durante l'esecuzione del programma ma solo quando fa un upload /programmazione. Un Kontroller in un dispositivo di orma viene programmato poche volte, una volta all inizio e dopo a qualche update del programma. Un dispositivo che usi come prototipo per scrivere e verificare il programma subbisce molte piú programmazioni ma starai anche dopo anni sempre sotto il valore massimo di scritture garantite.

Ciao Uwe


No non parliamo della MEGA.
OT (
uwe, esiste ancora la casa tedesca FUST?
Mi sono ritrovato davanti una lavastoviglie carro armato con quel marchio.
Cioè la lamiera della mia auto è spessa la metà di quella della lavastoviglie, vi lascio immaginare il peso.)

Ciao.

No, mai sentito quel produttore di lavatrici.

Allora quale Arduino stiamo parlando?
Ciao Uwe

leo72

Si parlava di questi microcontrollori Xmos:

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?




Go Up