Go Down

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

MauroTec



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

MauroTec


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

Go Up