Forse mi sto perdendo in un bicchier d'acqua, però, come faccio a convertire in decimale un valore esadecimale salvato su due byte differenti, high e low byte?
Questo è il codice che vorrei sfruttare, che però mi fornisce il valore hex.
oppure facendo una moltiplicazione ( che é piú intuitivo per l'uomo ma piú lento della versione precedentemente proposta):
unsigned int intero = Adval_Low + Adval_High * 256;
Ancora due parole riguardate dec e hex.
Il controller di arduino lavora internamente con valori binari a 8Bit. non sa niente di decimale, esadecimale o ottale.
Puoi scegliere se per una variabili vengono usati 1 Byte (tipo byte), 2 Byte (tipo int) oppure 4 Byte ( long e float) hai pure la scelta se un bit viene usato per segnare il segno della cifra oppure no (unsigned).
Il hex oppure decimale é solo una visualizzazione diversa per l'uomo.
Detto questo Tu non hai un valore Hex che devi convertire in decimale ma variabili Byte di diverso peso che devi convertire in una variabile unsigned int.
uwefed:
Detto questo Tu non hai un valore Hex che devi convertire in decimale ma variabili Byte di diverso peso che devi convertire in una variabile unsigned int.
Ciao Uwe
Hai ragion Uwe, è proprio così. Sono byte di diverso peso da convertire in una variabile int. Mi è venuto in mente di usare l'OR per 'fondere' i due byte, tuttavia la tua rappresentazione è molto più intuitiva e facile da capire.
Grazie.