Gast
#180290
Hallo, ich habe früher für 8051 Controller in C programmiert. Bei diesem Compiler konnte ich folgendes machen: #define heizung P11 // Portpin 1.1 Im Programm konnte ich dann mittels heizung=1; bzw. heizung=0; den entsprechenden Pin auf 0 oder 1 setzen. Da ich nun einige Programme auf den winavr portieren möchte gibts damit ein Problem. Wollte mir nun ein Makro basteln, damit ich nichts umschreiben muß. Aber egal wie ich es versuchte, gab es immer ein Problem mit dem "=". Hab mir jetzt folgendermaßen geholfen: #define PDOUT(x,wert) if (wert==1) {sbi(PORTD,x);}else {cbi(PORTD,x);} #define heizung_an PDOUT(5,1) #define heizung_aus PDOUT(5,0) somit kann ich im Programm nun schreiben heizung_an; bzw. heizung_aus; aber das ist nicht so ganz das was ich möchte Kann sein, dass sbi, cbi mittlerweile abgekündigt sind, aber darum gehts mir hier nicht. Wie kann ich ein Makro schreiben, dass ich im Programm einfach heizung=1; heizung=0; schreiben kann, also in meinen alten Programmen nichts umändern muß? Bin über Hilfe sehr dankbar. Volker