Makro Abfrage

OP #4670229
Hallo zusammen

Ich möchte folgendes in einem Makro erledigen:
1
#define HW_LED_A(state)  state == 1 ? 1: GPIO_SetBit(GPIOA, GPIO_PIN_4); 0:GPIO_Reset(GPIOA, GPIO_PIN_4);

Ist dies möglich?
Ich möchte HW_LED_A(1) oder (0) schreiben können, um die LED entweder 
ein oder auszuschalten.

Danke
Gast
Hallo,

das sieht sehr nach STM32 SPL API aus. Dort gibt es auch
1
GPIO_WriteBit(GPIOx, PIN, STATE);

Das sollte dann in etwa so aussehen:
1
#define HW_LED_A(state) GPIO_WriteBit(GPIOA, GPIO_PIN_4, state)

Alternativ auch:
1
#define HW_LED_A(state)  { if(state == 0) { GPIO_Reset(GPIOA, GPIO_PIN_4); } else { GPIO_SetBit(GPIOA, GPIO_PIN_4); } }
sollte es auch tun.

Gruss,
Jay

P.S.: Sicher, dass es GPIO_Reset() heisst und nicht eher 
GPIO_ResetBits() (ähnliches gilt für GPIO_SetBit())?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.