Go Down

Topic: leOS - un semplice OS per schedulare piccoli task (Read 45438 times) previous topic - next topic

Madwriter

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

leo72


MauroTec


la new funziona dall'ide 1.0

ma usando una dichiarazione di CLASSE statica dovresti risolvere tutto senza uso di puntatori..
quindi

static class leOS { [...] }

ciò costrige a rendere un pò tutto static, ma non è un problema.


Io credo che quello che hai scritto è più di java che di C++, non mi pare di ricordare che si può dichiarare la il costruttore static e neanche la classe, proprio per questo è nato il singleton pattern.

Confermo che la dimensione del .hex non cambia tra l'uso di #if o if, il compilatore si accorege che una condizione if può avere solo un risultato e questo è conosciuto a tempo di compilazione.


@maurotec: comunque fai bene a ricordare che a volte bisogna ottimizzare..purtroppo il compilatore non è pensante,quindi..

ora che ci penso,il fatto di usare static è un'ulteriore ottimizzazione( evita ogni volta di passare il parametro implicito this)..


Più che altro è un'accorgimento implementativo, si tratta dell'applicazione di un pattern usato spesso lato pc, per evitare di creare più instanze di una classe. Su embedded con limitate risorse si potrebbe preferire la riduzione hex a qualunque costo, pure a costo della implementazione.

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

superp


Allora.... sono qualche ora di inc....ture, sono riuscito a sistemare il supporto per l'Arduino Leonardo/Atmega32U4.
In allegato la versione 0.1.0 che compila e gira perfettamente con questa scheda e sul suo micro. Attenzione che qui si usa il timer 1.

E ora... buonanotte!  :smiley-sleep: :smiley-sleep:


Ciao Leo, ho appena fatto girare tutti gli esempi, e anche se non necessario, confermo il perfetto funzionamento...tcù test is megli che uan  XD
Ho anche letto il codice, ma
Quote
Attenzione che qui si usa il timer 1.

non stai ancora usando il timer 3?
N.
"The question is not whether intelligent machines can have emotions, but whether machines can be intelligent without any emotions"

lesto

hai ragione, non esistono le clssi static in c++.. devo approfondire ma si usa il namespace

http://stackoverflow.com/questions/9321/how-do-you-create-a-static-class-in-c (guarda la seconda risposta)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72


Ho anche letto il codice, ma
Quote
Attenzione che qui si usa il timer 1.

non stai ancora usando il timer 3?
N.

No, ho spostato tutto sull'1. Tanto uno dei due timer vale l'altro, sono entrambi a 16 bit.

superp

@Leo
Questo è quello che leggo dal'ultimo codice postato (0.1.0)
Code: [Select]

[...]

#elif defined (ATMEGAxU)
ISR (TIMER3_OVF_vect) {
    TCNT3 = _starter;
#endif

[...]

#elif defined (ATMEGAxU)
    //during setup, disable all the interrupts based on timer3
    TIMSK3 &= ~((1<<TOIE3) | (1<<OCIE3A) | (1<<OCIE3B) | (1<<OCIE3C) | (1<<ICIE3));
    //normal mode: counter incremented until overflow, prescaler set to /1
    TCCR3A &= ~((1<<WGM31) | (1<<WGM30));
    TCCR3B &= ~((1<<WGM33) | (1<<WGM32) | (1<<CS32) | (1<<CS31));
    TCCR3B |= (1<<CS30);
    //TCCR3B = 1;
    prescaler = 1.0;
#endif

[...]

#elif defined (ATMEGAxU)
    TCNT3 = _starter;
TIMSK3 |= (1<<TOIE3);
#endif


prendo un abbaglio? Poi altra domandina c'era una errore nella dichiarazione di starter a 8 bit invece che 16? Scusa, non sono pedante, sto solo studiando il tuo codice per crescere un po su questo lato della programmazione...trovo il tuo codice affascinante  XD
N.
"The question is not whether intelligent machines can have emotions, but whether machines can be intelligent without any emotions"

leo72


@Leo
Questo è quello che leggo dal'ultimo codice postato (0.1.0)
Code: [Select]

[...]

#elif defined (ATMEGAxU)
ISR (TIMER3_OVF_vect) {
    TCNT3 = _starter;
#endif

prendo un abbaglio?
[/quote]
No, hai ragione. L'ho rimesso sul timer 3. Devi scusarmi, erano l'1:00 di notte, avevo litigato 2 ore per far andare quel cavolo di timer, e mi ero messo a fare delle prove anche con un codice per Atmega328 che usava il timer 1 e che funzionava perfettamente anche sul 32U4 senza modifiche... alla fine avevo deciso di lasciare tutto sul timer 1, poi invece ho rimesso ogni cosa sul 3  :smiley-sweat: :smiley-sweat:

[quote]
Poi altra domandina c'era una errore nella dichiarazione di starter a 8 bit invece che 16?
[/quote]
Sì, era uno dei problemini che avevo trovato riguardo all'inizializzazione del timer. Mi ero dimenticato di impostare _starter a 16 bit quando si usa il 32U4.

[quote]
Scusa, non sono pedante, sto solo studiando il tuo codice per crescere un po su questo lato della programmazione...trovo il tuo codice affascinante  XD
N.
[/quote]
No, no. Non rompi, fai bene a far le domande: vedi che poi mi intreccio anch'io?  XD

PaoloP


PS.
devo ricordarmi di scrivere a Massimo per richiedere i diritti sul nome  :smiley-yell: :smiley-yell: $) $)


Secondo me sei tu che dovresti pagare i diritti agli eredi di Da Vinci.  :smiley-mr-green: :smiley-mr-green: :smiley-mr-green:

leo72

Io potrei essere un erede di Leonardo, visto che sono Toscano come lui, senza neanche saperlo. Beh, i geni ci sono, questo è certo  :smiley-yell:

Federico0

Davvero una figata, non vedo l'ora di provarlo! stra complimenti..

Madwriter


Io potrei essere un erede di Leonardo, visto che sono Toscano come lui, senza neanche saperlo. Beh, i geni ci sono, questo è certo  :smiley-yell:

Toscano? quest'estate passo per l'isola d'elba siamo vicini  :smiley-mr-green:
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

leo72

@madwriter:
Ma non hai scritto in un altro post che stai nei pressi di Napoli?

@Fede:
grazie dei complimenti, spero che ti possa essere d'aiuto, non fosse altro per un blink in background che così togli dal loop principale  :P

Madwriter

#163
Jul 13, 2012, 10:43 am Last Edit: Jul 13, 2012, 10:48 am by Madwriter Reason: 1

@madwriter:
Ma non hai scritto in un altro post che stai nei pressi di Napoli?

sisi vado li per l'estate ho dei parenti li :D

PS stai diventando famoso 1500+ view al post!
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

leo72



@madwriter:
Ma non hai scritto in un altro post che stai nei pressi di Napoli?

sisi vado li per l'estate ho dei parenti li :D

PS stai diventando famoso 1500+ view al post!

Sono contento non tanto per le visite quanto per il fatto che magari possa aver scritto qualcosa che è stata utile a qualcuno. Ecco, questo mi dà più gioia delle 1500 visualizzazioni  ;)

Go Up