Hallo (nochmal )

Muss da nochmal nachfragen

Habe da im Tutorial noch was gefunden...
http://www.mikrocontroller.net/artic...R-GCC-Tutorial
Veraltete Funktionen zum Zugriff auf Bits in Registern

cbi und sbi zum Löschen und Setzen von Bits sind nicht mehr erforderlich, der Compiler unterstützt dies ohne diesen Umweg. Die Bezeichnung ist ohnehin irreführend da die Funktionen nur für Register mit Adressen im unteren Speicherbereich tatsächlich in die Assembleranweisungen cbi und sbi übersetzt werden.

// alt:
sbi(PORTB, PB2);
cbi(PORTC, PC1);

// neu (auch nicht mehr wirklich neu...):
PORTB |= (1<<PB2);
PORTC &= ~(1<<PC1);

Will oder kann man den Code nicht portieren, ist zur weiteren Verwendung von sbi und cbi die Header-Datei compat/deprecated.h einzubinden. Wer unbedingt will, kann sich natürlich eigene Makros mit aussagekräftigeren Namen definieren. Zum Beispiel:

#define SET_BIT(PORT, BITNUM) ((PORT) |= (1<<(BITNUM)))
#define CLEAR_BIT(PORT, BITNUM) ((PORT) &= ~(1<<(BITNUM)))
#define TOGGLE_BIT(PORT, BITNUM) ((PORT) ^= (1<<(BITNUM)))
Kann mir jemand bitte das untere mit Define und mit den Klammern erklären?

Irgendwie will ich noch nicht so recht wahrhaben, dass ich da mit Define nicht meinen Pin angeben kann
Geht das vielleicht irgendwie mit SPI ? oder mit (PORT,BITNUM)... ???

(zur Erinnerung: Möchte sagen: Motorpin = 1;
(vorher definiert mit Motorpin = PORTA und PIN 2))

Vielleicht weis ja doch jemand noch ein Lösung?

Wie macht es den CodeVision?
Da gibt man ja auch an: PORTA.1= 2
Könnte man das irgendwie einfach nachbilden ?

l.G. Roberto