0
Offline
Faraday Member
Karma: 17
Posts: 3918
Arduino rocks
|
 |
« Reply #75 on: November 12, 2011, 07:25:32 am » |
secondo voi perche' non conta questo contatore ? ricevo solo 999999 ad ogni secondo for (int v=0;v<10;v++) { //counting from 0 to 9
V1=V2=V3=V4=V5=V6=(int)(v);
delay(1000);
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8232
:(){:|:&};:
|
 |
« Reply #76 on: November 12, 2011, 07:42:14 am » |
cosa stampi e cosa sono V1 etc... in oltre è inutile il cast ad int, essendo v già un int
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3918
Arduino rocks
|
 |
« Reply #77 on: November 12, 2011, 07:45:40 am » |
le V sono int, e le stampo a monitor vorrei che mi apparisse 000000 111111 222222 .... 999999 e poi ripartire da 000000 void contiamo () { for (int v=0;v<10;v++) { //counting from 0 to 9
V1=V2=V3=V4=V5=V6=(int)(v);
delay(1000); }
DisplayNumberSet(V1,V2,V3,V4,V5,V6); }
invece mi appare 999999 999999 999999
|
|
|
|
« Last Edit: November 12, 2011, 07:49:15 am by Testato »
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8232
:(){:|:&};:
|
 |
« Reply #78 on: November 12, 2011, 08:49:18 am » |
per forza, stampi i nuymeri quando il ciclo è finito, quindi quando valgono 9... prova a spostare il display all'interno del for...
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16470
Don't know what I do
|
 |
« Reply #79 on: November 12, 2011, 10:58:58 am » |
per forza, stampi i nuymeri quando il ciclo è finito, quindi quando valgono 9
Eh sì... 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3918
Arduino rocks
|
 |
« Reply #80 on: November 12, 2011, 12:04:28 pm » |
ho gia' provato, e' stata la mia prima prova cioe' cosi' giusto ? void contiamo () { for (int v=0;v<10;v++) { //counting from 0 to 9
V1=V2=V3=V4=V5=V6=(int)(v);
delay(1000);
DisplayNumberSet(V1,V2,V3,V4,V5,V6); } } non funge, resta sempre su 999999 In piu' se ho capito bene il comando questo codice dovrebbe contarmi da 0 a 9 e poi fermarsi, cosa ci devo aggiungere per farlo andare in continuazione e quindi ripartire da 0 ?
|
|
|
|
« Last Edit: November 12, 2011, 12:07:39 pm by Testato »
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8232
:(){:|:&};:
|
 |
« Reply #81 on: November 12, 2011, 12:17:22 pm » |
così è giusto, magari l'errore è in DisplayNumberSet...
per la seconda domanda, basta mettere contiamo() nel loop...
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3918
Arduino rocks
|
 |
« Reply #82 on: November 12, 2011, 12:18:57 pm » |
l'ho provato isolando il contatore dal resto dello sketch e' funziona. Anzi arrivato a 9 riparte anche da 0 come serve a me.
Il che va bvene, ma mi aspettavo che non lo facesse, leggendo nel playgroud dice che una volta arrivato alla fine il ciclo FOR si ferma. Non e' vero quidi ? Ogni for arriivatoalla fine riparte da zero ?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3918
Arduino rocks
|
 |
« Reply #83 on: November 12, 2011, 12:22:48 pm » |
per la seconda domanda, basta mettere contiamo() nel loop...
Quindi intrinsecamente il comando FOR ha un azzeramento della variabile alla fine del ciclo ? Non e' menzionata questa cosa nelle istruzioni del FOR, io la aggiungerei
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16470
Don't know what I do
|
 |
« Reply #84 on: November 12, 2011, 12:23:53 pm » |
Scusa ma non ti seguo. Il ciclo for continua finché si verifica la condizione. Nel tuo caso: for (int v=0;v<10;v++) fino a che perché equivale a: DisplayNumberSet(v,v,v,v,v,v); v diventa uguale o maggiore di 10. Inotlre non capisco questo: V1=V2=V3=V4=V5=V6=(int)(v); DisplayNumberSet(V1,V2,V3,V4,V5,V6); Perché tutti quegli assegnamenti a variabili diverse dello stesso valore?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16470
Don't know what I do
|
 |
« Reply #85 on: November 12, 2011, 12:24:59 pm » |
Quindi intrinsecamente il comando FOR ha un azzeramento della variabile alla fine del ciclo ? Non e' menzionata questa cosa nelle istruzioni del FOR, io la aggiungerei
No, perché tu usi una variabile LOCALE che vale solo internamente al ciclo for: for ( int v=0;v<10;v++) Al di fuori del ciclo, v non esiste.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3918
Arduino rocks
|
 |
« Reply #86 on: November 12, 2011, 12:29:56 pm » |
azz, e qui abbiamo imparato la differenza tra variabile locale e globale. Grazie mille come al solito. Quindi se ho capito non e' che la "v" si azzera, ma sparisce proprio dal pianeta terra, quindi quando rientro nel ciclo FOR viene ricreata in quel momento, con il rispettivo valore dichiarato. quella multitudine di V e' sempre per la questione valvolare, non farci caso  grazie ancora a Te e Lesto
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16470
Don't know what I do
|
 |
« Reply #87 on: November 12, 2011, 12:33:33 pm » |
Si chiama spazio dei nomi ed indica la visibilità di una variabile: int a; void fattiMiei() { int b; for (int c=0;c<10;c++) { .. } } "a" è vista globalmente, b solo all'interno della routine fattiMiei, "c" all'interno del ciclo for.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3918
Arduino rocks
|
 |
« Reply #88 on: November 12, 2011, 12:42:15 pm » |
thanks poi vi fo sapere perche' diavolo nello sketch reale non funge 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3918
Arduino rocks
|
 |
« Reply #89 on: November 12, 2011, 01:48:47 pm » |
devo eliminare il delay, di certo e' questo il problema, e se anche non fosse lo devo eliminare lo stesso. allora ho provato a fare if (millis() > reset_timer + 1000) { for (int v=0;v<10;v++) { V1=(int)(v); } reset_timer=millis(); } ma logicamente lui fa un conteggio velocissimo 0-9 e poi si ferma un secondo. mentre a me serve che conta ogni secondo. in poche parole avrei bisogno di un "For without delay" (sullascia del blink without delay) ma non trovo info. Come si fa a temporizzare un ciclo for ?
|
|
|
|
|
Logged
|
|
|
|
|
|