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

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

Messaggioda Foto Utentec1b8 » 28 apr 2009, 18:28

phylum ha scritto:mmm per approfittare del discorso di c1b8 {beh +/-} O:)

Ciao,
mi piacerebbe sapere anche la tua di opinione, perché {beh +/-}?
In cosa la pensi diversamente?
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

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

Messaggioda Foto Utentephylum » 28 apr 2009, 18:45

il +/- era inteso in un altro senso : Extreme Programming o meglio la regola PP e' intesa (almeno che io ricordi)
mettiamo di star scrivendo un programma
io scrivo tu leggi quello che scrivo e dai il tuo contributo
poi ci scambiamo di posto

:P

il +/- era perche' nn stavo interpretando propriamente quel ruolo, ma una fattispecie (molto far :P) :P
ho scritto un codice che (se nn ho commesso errori di distrazione e/o fraintendimenti) riproduce quello che Galaxy voleva fare col suo usando una logica diversa,
in sostanza appoggiavo sia il fatto che hai ricordato questa tecnica sia cercare di dimostrare di quanto possa essere benefica :P
\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

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

Messaggioda Foto Utenteposta10100 » 28 apr 2009, 18:49

Galaxi93 ha scritto:ho dato un occhiata veloce al tuo codice, e ho visto subito una cosa che mi crea un dubbio: ma la funzione getstato, non mi ritorna 0 se è spento e un numero diverso da 0 se è acceso?


Giusto... la mia memoria comincia a perdere colpi...

Codice: Seleziona tutto
        //Funzione che date le coordinate x, y, z, ne cambia lo stato solo se è diverso
        //dallo stato dato alla funzione e se lo cambia, restituisce 1 altrimenti 0.

        char cambia_if(char x, char y, char z, char stato)
             {
             char stato_led =getStato(x,y,z);
             if (stato_led) {
                 stato_led = 1;
             }
             char cambiato = 0;
             if (stato != statoLed) { // se lo stato è diverso
                 cambiaStato(x, y, z, stato); //lo cambio
                 return 1; // e restituisco 1
             }
             return 0; // altrimenti restituisco 0
        }



Così è a posto!

Galaxi93 ha scritto: Per il resto ho capito tutto, tranne quel map[i] = !stato*255; che cosa fa quello che ho scritto io?


A guardarlo bene dovrebbe funzionare (avevo interpretato la moltiplicazione come uno shift verso sinistra,ma in questo caso non è quella la funzione) solo che probabilmente è più lento in esecuzione dovendo fare la moltiplicazione....

L'hai provato? Funziona?
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

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

Messaggioda Foto Utenteposta10100 » 28 apr 2009, 19:18

Come mi ha fatto gentilmente notare Stella,
Codice: Seleziona tutto
if (stato != statoLed) { // se lo stato è diverso


deve diventare
Codice: Seleziona tutto
if (stato != stato_led) { // se lo stato è diverso


l'abitudine fa brutti scherzi... in genere i nomi li lascio attaccati usando una maiuscola...
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

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

Messaggioda Foto UtenteGalaxi93 » 28 apr 2009, 19:39

posta10100 ha scritto:Come mi ha fatto gentilmente notare Stella,
Codice: Seleziona tutto
if (stato != statoLed) { // se lo stato è diverso


deve diventare
Codice: Seleziona tutto
if (stato != stato_led) { // se lo stato è diverso


l'abitudine fa brutti scherzi... in genere i nomi li lascio attaccati usando una maiuscola...


Non ti preoccupare, il compilatore me lo a fatto notare (con una decina di errori :mrgreen: ).


Provato!!...non funziona....
Proprio il nulla, meno di zero. Ci deve essere qualcosa di "indefinito" perché se provo ad accendere e spegnere più volte il circuito, mi capitano dei led accesi casualmente...

Dopo gli do una bella occhiata, e cerco l'errore, se lo trovo... (cavolo mi è venuto un mal di testa incredibile, sarà perché sono sul computer da tutto il giorno?? :roll: ).
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

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

Messaggioda Foto Utentec1b8 » 28 apr 2009, 20:13

Una cosa che non ho capito, alla fine hai utilizzato la
Codice: Seleziona tutto
map[i] = !stato*255;

o il codice inserito da posta10100?

Quella istruzione (map[i] = !stato*255;) non può funzionare!
1) se stato=0 quanto fa !stato*255? fa 255*255 che è ok.
2) ma se stato=1 allora vale 254*255 che fa 2. Quindi non ok

Inoltre la random immagino imposti la random_4, ma con che valori?
da 0 a 3 o da 1 a 4? il secondo range non va bene, deve essere da 0 a 3.
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

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

Messaggioda Foto UtenteGalaxi93 » 28 apr 2009, 21:30

Si, ho utilizzato il codice di posta10100 e la random l'ho cambiata che va da 0 a 3.
A proposito della random, come mai occuma moltissimo spazio (quasi un terzo della memoria dal 16f84)???

Ah poi adesso che sto rileggendo bene il codice, nella funzione cambia_if, la variabile "cambiato" non serve più, dato che è stata sostituita da due return.
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

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

Messaggioda Foto Utenteposta10100 » 28 apr 2009, 21:42

Galaxi93 ha scritto:Ah poi adesso che sto rileggendo bene il codice, nella funzione cambia_if, la variabile "cambiato" non serve più, dato che è stata sostituita da due return.


Il codice è già abbastanza complesso di suo quindi tutto ciò che non serve va cancellato...
Potresti postare l'intero codice?
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

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

Messaggioda Foto UtenteGalaxi93 » 28 apr 2009, 21:46

Ho trovato un errore:
Codice: Seleziona tutto
for (i = 0; i < 8; i++) {
             if (stato == 0) {
                 map[i] = 0;
             } else {
                 map[i] = 255;
             }

é stato invertito lo 0 e il 255 poiché se stato è uguale a 0, deve accendere tutto il cubo, poiché, poi, uno alla volta, spegne tutti i led, e viceversa con stato=1. Quindi diventa:
Codice: Seleziona tutto
for (i = 0; i < 8; i++) {
             if (stato == 0) {
                 map[i] = 255;
             } else {
                 map[i] = 0;
             }


In ogni caso la situazione non cambia, siamo ritornati come prima (ovvero il codice che avevo scritto io). I led si comportano in maniera anomala senza nessuna apparente logica.

posta10100 ha scritto:Il codice è già abbastanza complesso di suo quindi tutto ciò che non serve va cancellato...
Potresti postare l'intero codice?


Tutto, tutto??
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

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

Messaggioda Foto Utentephylum » 28 apr 2009, 21:48

beh se ti viene complicato farlo qui puoi usare pastebin.com :P
\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

PrecedenteProssimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti