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
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).
Dziêkuje za odpowiedz
Pozdrawiam
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
Have something to add? Share your thoughts — no account required.
Ask the community — no account required