Forum: Compiler & IDEs Portzugriff mit eigenem Namen


von CAnfänger (Gast)


Lesenswert?

Hallo, ich kann PortB.0 (PB0) so ausschalten:

PORTB &= ~(1<<PB0);

aber warum nicht so:

#define spi_ss PB0;
PORTB &= ~(1<<spi_ss); // compilerfehler

warum / was kann ich tun? ich möchte gerne Namen im Programm verwenden, 
falls ich mir später mal überlege, daß es ein anderer Port sein soll 
oder so..

von Stefan E. (sternst)


Lesenswert?

CAnfänger wrote:

> #define spi_ss PB0;

Das Semikolon ist der Störenfried.

von Karl H. (kbuchegg)


Lesenswert?

CAnfänger wrote:
> Hallo, ich kann PortB.0 (PB0) so ausschalten:
>
> PORTB &= ~(1<<PB0);
>
> aber warum nicht so:
>
> #define spi_ss PB0;
> PORTB &= ~(1<<spi_ss); // compilerfehler
>
> warum / was kann ich tun? ich möchte gerne Namen im Programm verwenden,
> falls ich mir später mal überlege, daß es ein anderer Port sein soll
> oder so..

#define macht einfach nur eine Textersetzung

mittels
#define spi_ss PB0;
wird der Text "spi_ss" durch den Text "PB0;" ersetzt.

Und jetzt mach das mal händisch:

Aus
PORTB &= ~(1<<spi_ss);

wird dann
PORTB &= ~(1<<PB0;);

Beachte den Strichpunkt nach PB0

von CAnfänger (Gast)


Lesenswert?

Ah, jetzt, ja! Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.