Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Progettazione software per cubo led 4x4x4

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[121] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto UtenteGalaxi93 » 29 apr 2009, 12:16

Non me ne sono neanche accorto (sei più precisa del compilatore!! :o )

Codice: Seleziona tutto
for (x=0;x<4;x++)


Le domande rimangono le stesse.
Galaxi93.

Visita il mio sito!! E' ancora in costruzione, ma anche tu puoi contribuire a farlo crescere e darmi dei consigli per migliorarlo! Dai prova, provare non costa nulla! Vieni!
Avatar utente
Foto UtenteGalaxi93
3.118 3 7 13
Master
Master
 
Messaggi: 617
Iscritto il: 15 apr 2009, 16:27

0
voti

[122] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto Utenteposta10100 » 29 apr 2009, 12:18

phylum ha scritto:la domanda giusta e' quando finisce :P e se parte
perche' se nn e' solo un errore di battitura hai messo i come condizione, se nn e' sodisfatta all'inizio nn parte e se nn si modifica all'interno non si chiude. :P

il primo argomento che gli dai si chiama 'inizializzazione' - perche' e' da li che parte il conto,


Copia/incolla colpisce ancora!!!
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

0
voti

[123] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto UtenteGalaxi93 » 29 apr 2009, 13:38

#-o

Io non ho ancora capito se il ciclo parte con x=0 e svolge i comandi dentro le parentesi, o prima incrementa x? Lo chiedo perché ci potrebbero essere dei problemi del software.
Galaxi93.

Visita il mio sito!! E' ancora in costruzione, ma anche tu puoi contribuire a farlo crescere e darmi dei consigli per migliorarlo! Dai prova, provare non costa nulla! Vieni!
Avatar utente
Foto UtenteGalaxi93
3.118 3 7 13
Master
Master
 
Messaggi: 617
Iscritto il: 15 apr 2009, 16:27

0
voti

[124] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto Utentephylum » 29 apr 2009, 13:57

vediamo se cosi' e claro :P

for (x=0; x<10;x++)
{
"stampa" x;
}

otterrai

0
1
2
3
...
9
\int_{}tella
Immagine
Avatar utente
Foto Utentephylum
6.191 5 7 12
G.Master EY
G.Master EY
 
Messaggi: 3217
Iscritto il: 9 ott 2007, 12:40

0
voti

[125] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto UtenteGalaxi93 » 29 apr 2009, 14:03

phylum ha scritto:vediamo se cosi' e claro :P

for (x=0; x<10;x++)
{
"stampa" x;
}

otterrai

0
1
2
3
...
9


=D>

Finalmente!

Grazie mille!
Galaxi93.

Visita il mio sito!! E' ancora in costruzione, ma anche tu puoi contribuire a farlo crescere e darmi dei consigli per migliorarlo! Dai prova, provare non costa nulla! Vieni!
Avatar utente
Foto UtenteGalaxi93
3.118 3 7 13
Master
Master
 
Messaggi: 617
Iscritto il: 15 apr 2009, 16:27

0
voti

[126] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto UtenteGalaxi93 » 29 apr 2009, 21:58

Ho trovato, con l'aiuto di posta10100, un errore:
Codice: Seleziona tutto
//Questa funzione restituisce il l'indice del bit da modificare.
unsigned char getBitIndex(unsigned char x, unsigned char y)
         {
         if (y % 1)
            {
            return x + 4;
            }
         return x;
         }

Quel
Codice: Seleziona tutto
if (y % 1)
non vuol dire niente, dato che qualsiasi numero intero diviso per uno, non dà resto. Quindi va corretto con un 2 al posto dell'uno. E ora infatti funziona.

Ora mi si è posto un altro problema. Per accendere i led, ho utilizzato questa funzione:
Codice: Seleziona tutto
//Questa funzione controlla quali led sono stati memorizzati come alti (1) e li
//li accende, oppure li spegne dove sono posti a basso (0).
void check_led(char tempo_effetto)
     {
     for (tempo=1; tempo<tempo_effetto; tempo++) //Questi cicli for servono per
         { for (z_led=0; z_led<4; z_led++)   //far lampeggiare in sequenza tutti
           { for (y_led=0; y_led<4; y_led++)     //i led in maniera velocissima.
             { for (x_led=0; x_led<4; x_led++)
               {
               if (getstato(x_led,y_led,z_led))  //dei led e se è diverso da 0 (quindi acceso),
               acc_led(x_led+1,y_led+1,z_led+1);                             //corrispondente.
               else                      //Altrimenti (quindi 0, ovvero spento,
                   {
                   acc_led(0,0,0);       //lo spegne.
                   }
               }
             }
           }
         }
     }

Il problema sta nel fatto che inizialmente, all'interno di questi cicli c'era solo qualche comando e quindi lo svolgeva molto velocemente. Adesso, invece, deve svolgere molte funzioni e calcoli, e viene rallentato, infatti io vedo i led che hanno una luminosità molto ridotta poiché il tempo in cui rimano spento è aumentato. Questo è un bel problema!
Galaxi93.

Visita il mio sito!! E' ancora in costruzione, ma anche tu puoi contribuire a farlo crescere e darmi dei consigli per migliorarlo! Dai prova, provare non costa nulla! Vieni!
Avatar utente
Foto UtenteGalaxi93
3.118 3 7 13
Master
Master
 
Messaggi: 617
Iscritto il: 15 apr 2009, 16:27

0
voti

[127] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto Utenteposta10100 » 29 apr 2009, 22:43

Galaxi93 ha scritto:Il problema sta nel fatto che inizialmente, all'interno di questi cicli c'era solo qualche comando e quindi lo svolgeva molto velocemente. Adesso, invece, deve svolgere molte funzioni e calcoli, e viene rallentato, infatti io vedo i led che hanno una luminosità molto ridotta poiché il tempo in cui rimano spento è aumentato. Questo è un bel problema!


Questo era quello che temevo...
Le soluzioni sono 2.
Aumentare la frequenza del clock del PIC, ma creco che tu sia già al max
E mettere in campo le doti di buon programmatore!
Il bravo programmatore cerca di capire qual è la funzione richiamata più spesso e cerca di renderla più efficiente.

Innanzitutto puoi eleminare la parte
Codice: Seleziona tutto
else                      //Altrimenti (quindi 0, ovvero spento,
                   {
                   acc_led(0,0,0);       //lo spegne.
                   }

che non serve a niente. Se non accendi il led, rimane spento... perché devi spegnerlo ancora?

Prova e vediamo quanto abbiamo rosicchiato...
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

0
voti

[128] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto UtenteGalaxi93 » 29 apr 2009, 22:47

Per quanto riguarda la frequenza, per il 16f84 siamo al massimo, mentre per il 16F648A, mi pare che si può arrivare fino a 20MHetz.
comunque ora provo, ad eliminare quel comando e vediamo.
Galaxi93.

Visita il mio sito!! E' ancora in costruzione, ma anche tu puoi contribuire a farlo crescere e darmi dei consigli per migliorarlo! Dai prova, provare non costa nulla! Vieni!
Avatar utente
Foto UtenteGalaxi93
3.118 3 7 13
Master
Master
 
Messaggi: 617
Iscritto il: 15 apr 2009, 16:27

0
voti

[129] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto UtenteGalaxi93 » 29 apr 2009, 22:57

Colpito e affondato!!
Mizze ora il led brilla più che mai!
Ora provo il giochino di riempimento e svuotamento e vedo se funziona bene.

Bravo! =D>
Galaxi93.

Visita il mio sito!! E' ancora in costruzione, ma anche tu puoi contribuire a farlo crescere e darmi dei consigli per migliorarlo! Dai prova, provare non costa nulla! Vieni!
Avatar utente
Foto UtenteGalaxi93
3.118 3 7 13
Master
Master
 
Messaggi: 617
Iscritto il: 15 apr 2009, 16:27

0
voti

[130] Re: Progettazione software per cubo led 4x4x4

Messaggioda Foto Utenteposta10100 » 29 apr 2009, 23:03

Galaxi93 ha scritto:Bravo! =D>

Grazie,
ma ho paura che le prestazioni caleranno parecchio quando molti led saranno accesi... fai la prova e vediamo... altrimenti limiamo ancora qualcosa in giro... il codice non sarà più "elegante" ma poco importa!
http://millefori.altervista.org
Tool gratuito per chi sviluppa su millefori.

Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (A. Einstein)
Se non c'e` un 555 non e` un buon progetto (IsidoroKZ)

Strumento per formule
Avatar utente
Foto Utenteposta10100
5.550 4 10 13
Master EY
Master EY
 
Messaggi: 4832
Iscritto il: 5 nov 2006, 0:09

PrecedenteProssimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti