mikrocontroller.net

Forum: Compiler & IDEs Pin-Ausgang invertiert darstellen


Autor: Dee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mal eine etwas blöde Frage. Ich stehe gerade vor folgendem 
Problem:

Ich liefere an einen Pin-Ausgang ein Signal, welches Low-Aktiv ist. Dies 
sieht in meinem C-Code wie folgt aus.

#define Signal p8_0

Wenn das Signal nun aktiv schalten möchten, muss ich es immer auf Null 
setzten: So z.B.


// Wenn Signal aktiv...
Signal = 0;

Ich hätte jetzt aber gerne der Lesbarkeit wegen, dass ich das Signal auf 
"1" setzen kann im aktiven Zustand. Habe folgendes ausprobiert dies 
funktionierte jedoch nicht.

#define Signal !p8_0
// Wenn Signal aktiv...
Signal = 1;


Gibt es da eine Lösung zu?

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich habe mal eine etwas blöde Frage.

Warum betonen das immer alle -- das sieht man doch auch so.

Mach Dir ein Makro, dann rufst Du einfach das Makro auf, etwa 
"SwitchPinOn()" oder wie auch immer. Für die bessere Lesbarkeit hat man 
Macros u.a. erfunden.

Autor: Dee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie soll ich in dem Makro dann meinen Pin invertieren. Das ist ja 
mein Problem.

Hast du vielleicht ein Beispiel?

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mach Dir ein Makro,

Eine benannte Konstante geht auch, etwa

#define Pin_On 0
#define Pin_Off 1

Statt
// Wenn Signal aktiv...
//Signal = 0;

Dann

Signal = Pin_On;

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hast du vielleicht ein Beispiel?

Im Prinzip einfache Textersetzung, lies mal nach wie man in C Makros 
definiert bzw. einsetzt, dann wird es Dir sicher klar.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.