Go Down

Topic: problema conversione valori (Read 1 time) previous topic - next topic

alessanddrob

Jan 07, 2013, 06:52 pm Last Edit: Jan 07, 2013, 07:31 pm by alessanddrob Reason: 1
ho un buco di memoria
come lo converto il valore di

Code: [Select]
void temp()
{
tempC = analogRead(0);           //lettura valore del sensore
tempC = (5.0 * tempC * 100.0)/1024.0;  //conversione del dato analogico in temperatura
delay(1000);                           //aspetta 1 secondo prima di ripetere
}


qui viene usato dalla scheda ethernet

Code: [Select]
e.print(temp);

questo è l'errore

webserver_state_mod.cpp: In function 'void loop()':
webserver_state_mod:85: error: invalid conversion from 'void (*)()' to 'int'
webserver_state_mod:85: error: initializing argument 1 of 'void ETHER_28J60::print(int)'

sicuramente e un problema di conversione di valori ma non mi ricordo come si fa , gia bestemmiai un po di tempo fa ma non mi ricordo piu
grazie

Michele Menniti

non capisco, perché al comando e.print stai fornendo il nome della void invece di quello della variabile?
Non dovrebbe essere

e.print(tempC);
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

alessanddrob

non vorrei scrivere una boiata , ma scrivendo il nome della funzione non passo il risultato della funzione ?

Michele Menniti

Non credo sia così immediata la cosa, non sono un softwarista ma ricordo che le () accanto al nome della void servono proprio per il passaggio di parametri; una funzione potrebbe avere più risultati, no? come farebbe la funzione a sapere quale vuoi?
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

alessanddrob

io sono un ardwarista :D
Le () servono di solito a passare un valore a una funzione
ma dato che qui il valore con cui deve lavorare è interno ..... analogread(0)
chiamando la funzione gia elabora il risultato ........void temp ()= elaborazione di tempC
magari sta' funzione mi genera una variabile  float e non lo posso usare in e.print :(
spero di non aver scritto una mega caXXata
che ne sa di piu' puo' anche maltrattarmi :D
grazie

Go Up