home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc


Come trasformo due variabili decimali da 8 bit in una a 16 bit?
     
Autore Messaggio opzioni
valfus





postato il:
12.02.2022, alle ore 00:40
Come trasformo due variabili decimali da 8 bit in una a 16 bit? 

Salve a tutti.
Avrei un problemino con una seriale da cui si leggono dei valori decimali da 8 bit
questi valori poi formano una variabile a 16 bit

Vorrei sapere se esiste il modo di trasformare due numeri decimali che possono arrivare da 0 a 255 in una variabile da 16 bit che quindi può arrivare da 0 a 65535.

Praticamente se i numeri fossero binari per esempio se ho 11000000 che vale 192 in decimale e 00001000 che vale 8.
Se li unisco insieme diventerebbe 1100000000001000 che varrebbe quindi 49160.

Ma se ho invece sono i numeri decimali, 192 e 8, quali calcoli devo fare per ottenere 49160.

Spero di essermi spiegato bene...
RidiculousLab





postato il:
12.02.2022, alle ore 08:25
Ciao. Molto semplice. Devi moltiplicare la parte piu significativa per 256 e poi sommarla alla parte restante.
192x256 + 8
In pratica è come shiftare a sinistra di 8 bit ovvero moltiplicare per 2 alla 8



https://www.ridiculouslab.com
RidiculousLab





postato il:
12.02.2022, alle ore 08:33
Ovviamente devi anche sapere se il numero rappresentato ha il segno oppure no.
In caso affermativo il 16 bit è quello che determina se il numero è positivo o negativo.
Per cui il calcolo di cui sopra nel caso di intero con segno (+32768 -32767) vale solo se il byte piu significativo è inferiore a 128. I valori che superano 127 sono quindi negativi.



https://www.ridiculouslab.com
double_wrap




una ogni 100 livelli
una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli


postato il:
12.02.2022, alle ore 12:27
Cosa arriva dalla seriale e con quale funzione lo leggi?

A seconda della funzione usata il compilatore fa delle formattazioni prima di caricare la variabile.
Ad esempio la cifra decimale <5> potrebbe arrivare alla seriale su otto bit come carattere asci <53> cioe' <00110101>. Il compilatore la converte in <5> e nella variabile di lettura scrive <00000101>. Oppure potrebbe arrivare in binario come <00000101> ed il compilatore DEVE sapere cosa farne.

Nel tuo caso il tuo numero <decimale> 192 come arriva alla seriale? In binario ad otto bit <11000000> oppure in decimale come<49><57><50><CR>?



"se peso cado, ma se cado non peso"
adamatj.altervista.org
valfus





postato il:
13.02.2022, alle ore 15:12
Grazie mille per le pronte risposte comunque come diceva RidiculousLab ho risolto la faccenda.

Grazie mille ancora

RidiculousLab





postato il:
15.02.2022, alle ore 22:41
:-)


https://www.ridiculouslab.com
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale