Cześć,
Może nie do końca ta grupa ale wielu z Was pisze w C i może mi podpowie :)
Korzystam z takich makr, które pracują na bitach, np.:
#define setbit(VAR,Place) ( (VAR) |= (uint8_t)((uint8_t)1<<(uint8_t)(Place)) )
w programie mam zdefiniowane np.:
#define PORT_LED GPIOA #define LED_R 0
uint8_t main_flags1, main_flags2, main_flags3; #define FLAGA1 0 #define FLAGA2 0
i później takie wykorzystanie np.:
setbit(PORT_LED, LED_R); setbit(main_flags, FLAGA1); setbit(main_flags2, FLAGA2);
Przy portach to jeszcze nie jest problemu ale przy flagach trzeba ręcznie panować nad tym w której zmiennej leży jaka flaga. Już kilka razy szukałem przez to błędów.
Jak zrobić, żeby odwołanie do flagi było jednoznaczne, chodziło by mi o coś takiego (co nie działa przez ten przecinek):
#define F_LED_R PORT_LED,LED_R
setbit(F_LED_R);
Wtedy w programie nie muszę się już zastanawiać gdzie leży jaki bit.
Zawsze tak pisałem w asm, a teraz mi tego brakuje :)
Pozdrawiam,