IAR AVR pytanie

Dec 19, 2006 5 Replies

Witam Czy w IAR AVR w jêzyku C da siê wpisaæ np dan± do portu binarnie?



w WinAVRto wygl±da : PORTD = 0b10101010;



a w IAR?



Pozdrawiam AzaZeL



NIE, ale mozna utworzyc pole bitowe i ustawic kazdy bit z osobna....

__io union

{

unsigned char PORTE; /* The sfrb as 1 byte */

struct

{

unsigned char PORTE_Bit0:1,

PORTE_Bit1:1,

PORTE_Bit2:1,

PORTE_Bit3:1,

PORTE_Bit4:1,

PORTE_Bit5:1,

PORTE_Bit6:1,

PORTE_Bit7:1;

};

} @ 0x1F;

/* whole register access */

PORTE = 0x12;

/* Bitfield accesses */

PORTE.PORTE_Bit0 = 1;

Nie da siê, chyba, ¿e sobie zbudujesz do zamiany jakie¶ makro albo funkcyjkê.

Zauwa¿, ¿e w jêzyku C nie ma podawania warto¶ci binarnie. S± tylko 3 dozwolone typy: dec(10), hex(16), oct(8).

Piotr Chmiel napisał(a):

A ja się zastanawiałem nad tym problemem i wymyśliłem, żeby sobie zdefiniować parę napisów dla kompilatora:

#define 0b00000000 0x00 #define 0b00000001 0x01 ...

itd. do wartości 0b11111111

Jak to mówią: RTFM ;) Joerg Wunsch już stworzył. I nie dla WinAVR tylko avr-gcc.

Pozdrawiam Marcin Stanisz

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required