Hallo! Ich habe gerade folgendes Problem und ich weiß nicht wie man das löst. Eigentlich ganz Simpel, ich möchte wissen ob bzw. wie ich per define einen Ausgang auf 1 setzen kann also ich möchte nachher einfach schreiben: Ausgang = 1 oder Ausgang = 0 und es soll hald zb. der PORTB5 auf 1 bzw 0 gesetzt werden. Ist das so überhaupt möglich? Danke
Hallo! du hast mich falsch verstanden. Ich möchte das so machen: #define Ausgang ....... void main(void) { Ausgang =1; Ausgang =0; } Ich möchte also nur "Ausgang" auf 1 bzw. 0 setzen ohne "PORTB |= (1 << PB5);" oder so schreiben zu müssen. MfG
>Ich möchte also nur "Ausgang" auf 1 bzw. 0 setzen ohne "PORTB |= (1 << >PB5);" oder so schreiben zu müssen. #define Ausgang_High PORTB |= (1 << PB5) // auf 1 #define Ausgang_Low PORTB &= ~(1 << PB5) // auf 0 void main(void) { Ausgang_High; Ausgang_Low; }
Hallo! So habe das mit den defines nun so ähnlich gemacht wie holger das sagte. Kann mir jemand sagen wieso das nicht funktioniert? #define phaseASet { PORTD |= (1 << PD0); //Am=0 PORTD |= (1 << PD1); //Ap=1; } Lg
Bei #define über mehrere Zeilen musst du am Ende jeder Zeile (mit Ausnahme der Letzten) ein "\" setzen. Außerdem sollten (wenn ich mich nicht irre) in solchen Fällen die Kommentare nicht als "// Kommentar" sondern als "* Kommentar *" geschrieben werden, da sonst auch die folgenden Zeilen vom Compiler als Teil des Kommentars angesehen und somit nicht compiliert werden. Gruß, Magnetus
Hallo! Habs nun so probiert: #define phaseASet { PORTD |= (1 << PD0);/ PORTD |= (1 << PD1); } Compiler will immer noch nicht er meint: ../neu.c:5: error: expected identifier or '(' before 'volatile' ../neu.c:5: error: expected ')' before '(' token Lg
Ups Backslash nicht Schrägstrich! Ok mein Fehler Nun meint er aber: ../neu.c:4:41: warning: backslash and newline separated by space
Ok, so jetzt ist auch das warning weg! Besten Dank! Allerdings einen Kommentar akzeptiert er weder als "//Kommentar" noch als"/*Kommentar*/" Hat jemand eine Idee? MfG
1 | struct bits { |
2 | uint8_t b0:1; |
3 | uint8_t b1:1; |
4 | uint8_t b2:1; |
5 | uint8_t b3:1; |
6 | uint8_t b4:1; |
7 | uint8_t b5:1; |
8 | uint8_t b6:1; |
9 | uint8_t b7:1; |
10 | } __attribute__((__packed__)); |
11 | |
12 | #define SBIT(port,pin) ((*(volatile struct bits*)&port).b##pin)
|
13 | |
14 | #define TestPin SBIT (PORTD, 7)
|
Jetzt kannst Du schreiben: TestPin = 1; TestPin = 0;
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.