Ako zadať viac riadkové makro v C?

Potrebujem makro. v C pre pic to slo takto:

#define wrcmd(w) RS=1;wrdata(w)

v programe bolo potom : wrcmd(0x46);
cize urobilo to ze zobralo cislo,nastavilo bit do jednotly, a zavoalo funkciu wrdata s pouzitym cislom.

Tak ze ako to zapisat do C pre atmega8 v AVR studio skusam toto ale nejde:
#define bcf_RS (bcf(PORTB,PB1))
#define bcf(port,pin) port &= ~(1<<pin) //nuluj bit
tieto dva su OK

#define wrcmd (data)(bcf_RS); wr(data); //neprelozi

Za rady dakujem…

:arrow_right: administrator: přejmenováno z "Makro pre ATmega8"

UZ asi nič mam toto: #define wrcmd(data) (bcf_RS);wr(data) zdasa ze to pojde aspon prekladac si mysli-…

Som mal mensiu prstavku v programovani…to je tak ked podprogram musi byt na zaciatku a nie nakonci …ako by sa patrilo :smiley:

Pre viac riadkove makro v C treba pouzit nasledovny zapis (pre inspiraciu)

#define COM0_SETUP_ASYNCHRON_8O2 UCSRC = (1<<URSEL) | (1<<USBS) | (3<<UCSZ0) | (1<<UPM1) | (1<<UPM0);
RES(UCSRA,U2X);
RES(UCSRA,MPCM)