Go Down

Topic: Conversione dec a ex (Read 1 time) previous topic - next topic

m.alverman

C'è una funzione che mi converte un valore numerico in esadecimale a due byte ?

Grazie, Alberto

anerDev

Per caso hai a che fare con un ricevitore IR ?

m.alverman


leo72

Lo puoi convertire nel formato byte basso/byte alto con lowByte() e highByte().

m.alverman

Non ce la faccio :(
Ho googlato per un'ora ma non ci capisco una mazza.

Io vorrei 'creare' una funzione che inviadole, per esempio il valore 16, mi rimandi 2 byte 49 e 48.

C'è nessuno che mi regala questa funzione ?

Grazie, Alberto

astrobeed

Quale sarebbe la relazione tra 16 e i numeri 49 - 48 ? Non è certo una conversione di nessun tipo tra valori.
Inoltre cosa intendi esattamente con conversione in esadecimale ?
Hai un valore numerico, che internamente al micro è sempre in binario (= esadecimale se preso a gruppi di 4 bit) e vuoi inviarlo sulla seriale in formato ASCII come valore esadecimale ?

Usare il GOTO in C è ammettere la propria sconfitta come programmatore

m.alverman

Invio 4 byte cosi:(sono gli ultimi 4)

  sendMSG(48,49,5, 68,48,48,32,49,48,48,48);

e li leggo così:

   data_motor = (hex2num(data[7])<<4)+(hex2num(data[8]));
   data_state = (hex2num(data[9])<<4)+(hex2num(data[10]));       

data_motor = 16
data_state = 0

Se mando:

  sendMSG(48,49,5, 68,48,48,32,49,49,48,48);

avrò:

data_motor = 17
data_state = 0


m.alverman

Boh ...... non ci sto capendo più un .....
Io vorrei solo fare una funzione che dato un numero da 1 a 99 mi ritorni un formato così:

Entro nella funzione con
10
mi ritorna
48 e 65 (BYTE1 0, BYTE2 A)
Entro nella funzione con
11
mi ritorna
48 e 66 (BYTE1 0, BYTE2 B)
Entro nella funzione con
12
mi ritorna
48 e 67 (BYTE1 0, BYTE2 C)
Entro nella funzione con
....
Entro nella funzione con
15
mi ritorna
48 e 70 (BYTE1 0, BYTE2 F)


Entro nella funzione con
16
mi ritorna
49 e 48 (BYTE1 1, BYTE2 0)

e così via.

Non so se sia corretto ma è questa cosa che non riesco a fare che mi fa andare fuori.

Grazie, Alberto

superlol

Code: [Select]

int bytea;
int byteb;
int cambio(int num) {
  switch(num) {
    case 10:
    bytea = 0x48;
    byteb = 0x65;
    break;
    case 11:
    bytea = 0x48;
    byteb = 0x66;
    break;
    case 12:
    bytea = 0x48;
    byteb = 0x67;
    break;
    //continua tu...
  }
}

non è ottimizzato al massimo ma dovrebbe andare... se ho capito quello che volevi ;) quando la chiami poi bytea e byteb assumono i 2 valori
http://www.aug-altogarda.it/ <- Il nuovo AUG per basso trentino e dintorni!

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy