Offline
Newbie
Karma: 0
Posts: 11
|
 |
« on: January 05, 2013, 03:01:07 pm » |
riporto qui sotto parte del codice su cui lavoro: if (temp > 10) { temp-10; } else { digitalWrite(latchPin, HIGH); shiftOut(dataPin, clockPin, LSBFIRST, ripetizione); shiftOut(dataPin, clockPin, LSBFIRST, temp); digitalWrite(latchPin, LOW); }
come posso fare per contare quante volte sottraggo 10(ho indicato con "ripetizione" questo numero) alla variabile temp? questo per mandare in output su un display a 7 segmenti un valore di temperatura(sicuramente di due cifre)
aspetto risposta grazie
|
|
|
|
|
Logged
|
|
|
|
|
Riva del Garda, TN / Forlì
Offline
Edison Member
Karma: 7
Posts: 2072
Il piu' modesto al mondo
|
 |
« Reply #1 on: January 05, 2013, 03:16:13 pm » |
se devi solamente contare fai una variabile a tua scelta (in genere quelle incrementali si fanno chiamare i per convenzione) e la incrementi ad ogni ciclo. come? facile: fuori loop... int i=0;
nel loop.. if (temp > 10) { temp-10; i++; } else { digitalWrite(latchPin, HIGH); shiftOut(dataPin, clockPin, LSBFIRST, ripetizione); shiftOut(dataPin, clockPin, LSBFIRST, temp); digitalWrite(latchPin, LOW); }
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 11
|
 |
« Reply #2 on: January 05, 2013, 03:18:05 pm » |
mille grazie!!!
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 11
|
 |
« Reply #3 on: January 05, 2013, 03:40:25 pm » |
un ultima cosa... figurati se era finita lì  ... mi dà questo errore "invalid types ‘byte [10][float]’ for array subscript" cosa potrebbe essere?
|
|
|
|
|
Logged
|
|
|
|
|
Riva del Garda, TN / Forlì
Offline
Edison Member
Karma: 7
Posts: 2072
Il piu' modesto al mondo
|
 |
« Reply #4 on: January 05, 2013, 03:51:44 pm » |
un ultima cosa... figurati se era finita lì  ... mi dà questo errore "invalid types ‘byte [10][float]’ for array subscript" cosa potrebbe essere? volevi fare una array di byte multidimensionale ma non avevi idea di cosa mettere tra parentesi a mio avviso  posta la parte di codice incriminata ricorda che gli array si inizializzano così: tipo nome[];
nei multidimensionali tipo nome[][];
nelle parentesi puoi mettere solo numeri che vai ad utilizzare nel caso tu sappia quanto grande sarà questo array (10 valori, 12, 15, 30, ecc...)
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 11
|
 |
« Reply #5 on: January 05, 2013, 03:55:13 pm » |
ed allora è giusto...
byte values[]={
B00001100,
B10110110,
B10011110,
B11001100,
B11011010,
B11111010,
B00001110,
B11111110,
B11011110,
B01111110,};
quelle sono le parentesi ed in mezzo ci sono i diciamo codici per accendere il display a 7 segmenti il primo è 1, poi 2, 3, ecc fino a 0...
cosa ho sbagliato?
|
|
|
|
|
Logged
|
|
|
|
|
BZ (I)
Offline
Brattain Member
Karma: 160
Posts: 15641
+39 349 2158303
|
 |
« Reply #6 on: January 05, 2013, 04:56:24 pm » |
Te lo avevo giá spegato in http://arduino.cc/forum/index.php/topic,140908.msg1058621.html#msg1058621Un numero int a 2 cifre lo suddividi nei 2 numeri piú semplicemente cosí: uni=temperature%10; decine=temperature/10; Ciao Uwe
|
|
|
|
« Last Edit: January 05, 2013, 04:58:25 pm by uwefed »
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #7 on: January 05, 2013, 05:19:49 pm » |
riporto qui sotto parte del codice su cui lavoro: if (temp > 10) { temp-10; } Questo codice è sbagliato. Dove metti il risultato di temp-10? Dovrebbe essere: temp = temp -10; oppure temp -= 10;
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 11
|
 |
« Reply #8 on: January 06, 2013, 07:33:46 am » |
Uwefed l'ide di arduino il segno % me lo da non riconosciuto.... e mi da questo errore:
termometro.cpp: In function ‘void loop()’: termometro.cpp:68:11: error: invalid operands of types ‘float’ and ‘int’ to binary ‘operator%’
|
|
|
|
« Last Edit: January 06, 2013, 07:57:33 am by wirpool »
|
Logged
|
|
|
|
|
Riva del Garda, TN / Forlì
Offline
Edison Member
Karma: 7
Posts: 2072
Il piu' modesto al mondo
|
 |
« Reply #9 on: January 06, 2013, 08:44:24 am » |
Uwefed l'ide di arduino il segno % me lo da non riconosciuto.... e mi da questo errore:
termometro.cpp: In function ‘void loop()’: termometro.cpp:68:11: error: invalid operands of types ‘float’ and ‘int’ to binary ‘operator%’
vuol dire che l'operatore % non accetta i tipi di variabili float e non puoi passare da float a int http://arduino.cc/en/Reference/Modulo
|
|
|
|
|
Logged
|
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 49
Posts: 3000
|
 |
« Reply #10 on: January 06, 2013, 08:50:48 am » |
|
|
|
|
|
Logged
|
IDE 1.0.4 - Arduino UNO R3 - Ethernet Shield R3 - DCF77 Module - Adafruit Data Loggin Shield - LCD 16x2 RGB positive backlight - i2c LCD backpack - RTC 1307 Board - Saleae Compatibile Logic Analyzer 8ch 24Mhz - ATtiny2313 ProtoBoard - Xino Board - ATtiny 4313 - Arduino 2009 - Arduino USB Serial Ligth - DS18B20 - LM35DZ - ShiftRegister - TL431 - ATtiny 85 Ultimi acquisti: CodeBender: http://codebender.cc/register/?referrer=PaoloP
|
|
|
|
|