Ausgangspin definieren

Gast #1595305
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
Gast #1595331
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
Gast #1595851
>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;
}
Gast #1598097
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
Gast #1598105
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
Gast #1598112
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
Gast #1598120
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
Gast #1598126
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;

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.