AVR programavimo su C problema

M

m_pourfathi

Guest
Nesuprantu ką reiškia šios makrokomandos Please help:

# define ETH_INT_ENABLE GICR | = (1 <<INT2)

# define ENC28J60_CS_HI () ENC28J60_PORT | = (1 <<ENC28J60_PIN_CS);

# define ENC28J60_REG_MAADR2 (0x63 | 0x80)

# define ENC28J60_TX_BUFFER_START ((unsigned int) 0x1A00)

# define LO8 (x) ((x) & 0xFF)

# define LBBL_ENDIAN_INT (x) ((x & 0x00FF) <<8) ((x & 0xFF00)>> 8)

# define LBBL_ENDIAN_LONG (x) ((x & 0xFF000000)> 24) ((x & 0x00FF0000)>> 8) ((x & 0x0000FF00) <<8) ((x & 0x000000FF) <24)

ačiū

 
# define yra tekstas modelio pakeitimas direktyvos.
Jūsų pavyzdys
# define LBBL_ENDIAN_INT (x) ((x & 0x00FF) <<8) ((x & 0xFF00)>> 8)

rinkdamos kompiliatorių pakeis kas
LBBL_ENDIAN_INT (x)
su
((x & 0x00FF) <<8) ((x & 0xFF00)>> 8)
Prieš sudarant
todėl po šio # define galite parašyti
LBBL_ENDIAN_INT (x), kurią lengviau suprasti, kaip
((x & 0x00FF) <<8) ((x & 0xFF00)>> 8)

 
Žinau, bet kas tiksliai yra antros dalies prasme?Aš nesuprantu, kad dalis!

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Liūdnas" border="0" />
 
Žemiau yra iš manęs prielaida, bet geriau, tiesiog įrašykite visą seriją kodą, jei jis yra naudojamas.

realiai čia ir yra logiška "ir" operatorius, atliekančius loginis ir operacijų dviejų kintamųjų čia yra x ir 0x00FF arba 0xFF00

Ir>> <<yra Bitinis operatoriams, kurie pamainomis bitus į kairę arba dešinę dvejetainiu bazę, čia jis darys, kad 8 kartus, ty 8 kartus kairėn ir dešinėn pereiti iki 8 kartų.

Manau, kad pareiškimas yra naudojamas loginių ir dviejų kintamųjų vertės X
0x00FF ir 0xFF00 tada jis atlieka kairėn ir dešinėn pamainą 8 kartus, nepriklausomai nuo vertės.

Faktiškai dvejetainiu kiekvieno teise pereiti devides numeris 2, o kiekvienas kairėn daugina skaičių iš 2.

 
LBBL_ENDIAN_INT (x) bus pertvarkyti sveikasis skaičius nuo mažai Big endian formatas - arba atvirkščiai.

Jei nežinote kas tai yra, patikrinti čia: http://en.wikipedia.org/wiki/Endianness

/ RAM

 

Welcome to EDABoard.com

Sponsor

Back
Top