#define WARTEPIN PINA #define WARTEBIT 2 while ( !(WARTEPIN & (1 << WARTEBIT)) ) ; versteh ich nicht. es werden doch WARTEPIN (also PINA) logisch AND mit 00000100 verknuepft? Aber WARTEPIN ist doch in dem Fall nur ein Register???
Hallo, erstmal ist "2" in Binär 00000010. Dazu kommt, dass in PINA (in binärer Form) Die Portzustände von PINA stehen. Das kann man ganz gut verknüpfen. Grüße
(1 << 2) das hier verschiebt doch eine 1 in Bin.: 00000001 um zwei stellen nach links also: 00000100 ??
@Patrick M. aber eine 1 um 2 stellen nach links geschoben ergibt 4. 4 = (2^2) = 0b00000100 @oswald PINA ist funktional ein derefernzierter zeiger auf eine 8-bit (volatile) varible. Konzept: (numerische Angaben frei erfunden) #define PINA (*((volatile unsigned char *)0x2e)) dann kann ich mit "unsigned char b = PINA;" den Wert an den PINs auslesen. Aber wie gesagt ... stark vereinfacht.
> es werden doch WARTEPIN (also PINA) logisch AND mit 00000100 > verknuepft? Ja. Durch diese Verknüpfung kann man testen, ob darin das Bit 2 gesetzt ist oder nicht. > Aber WARTEPIN ist doch in dem Fall nur ein Register??? Die I/O-Register des AVR lassen sich in C wie normale Variablen verwenden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.