Pages: [1]   Go Down
Author Topic: Conversione dec a ex  (Read 838 times)
0 Members and 1 Guest are viewing this topic.
Cremona
Offline Offline
Full Member
***
Karma: 2
Posts: 148
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Grazie, Alberto
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 1
Posts: 560
Electronics & Web Dev, Unix User, Ω LEO, Rock/Deep Music, Tech/Science/Finance addicted, Ski/Snowboard and much more …
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Per caso hai a che fare con un ricevitore IR ?
Logged


Cremona
Offline Offline
Full Member
***
Karma: 2
Posts: 148
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Cremona
Offline Offline
Full Member
***
Karma: 2
Posts: 148
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ce la faccio smiley-sad
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
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9183
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ?

Logged

Cremona
Offline Offline
Full Member
***
Karma: 2
Posts: 148
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

Cremona
Offline Offline
Full Member
***
Karma: 2
Posts: 148
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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 smiley-wink quando la chiami poi bytea e byteb assumono i 2 valori
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Pages: [1]   Go Up
Jump to: