IAR AVR C, Minime / Massime byte della variabile INT

D

Diamant

Guest
Necessità di accedere ai byte di interi (16 bit).

Che posso fare in questo caso, se conosco l'indirizzo intero:
char * variabile1 = (char *) 0xxxx; (indirizzo integer)
char * variabile2 = (char *) 0xxxx 1; (indirizzo 1 di integer)

c'è qualche altro modo?
char * variabile1 = (char *) IntVariable, non poteva essere compilato

Intero movimento destra / sinistra per ricevere Minime / Massime byte --- idea non è per me.

... Hai bisogno di aiuto del programmatore avanzata ...

 
È la migliore per farlo tramite l'unione

typedef struct chara
(
char char1;
char char2;
) Caratteri;

typedef union alto
(
Int16 intn;
chars charn;
MyNumber);

MyNumber tnum1.intn = 65535;
char first_byte = tnum1.charn.char1;
char second_byte = tnum1.charn.char2;

 
Che dire questo:

unione
(
int intero;
unsigned char byte [2];
) variabile;

variable.integer di accedere a esso come un intero
variable.byte [0] e variable.byte [1] per accedere BYTEWISE

spero che questo sia utile per voi

Sorry for my post ripetere risposta artems, non riuscivo a vedere mentre ho scritto questo

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />
 
Thanks a lot, questo è il modo perfetto out!
Ho dimenticato i sindacati ...

off: andare per saperne di più sui sindacati.

 
O su questo:

int intero;
char byteHi, byteLo;

byteHi = integer / 256;
byteLo = 256% integer

----------------------
o
byteHi = integer>> 8;
byteLo = integer;

 
Eskimo, questo codice ha bisogno additionals variabili in memoria per essere creato, ho ottenuto havent affatto

 

Welcome to EDABoard.com

Sponsor

Back
Top