GPIO-Pin hat vor Pulsweitenmodulation einen nicht definierten Zustand- Kann man das ändern?

Gast #5793851
Lesenswert?
• ▲
▼
Hallo, Achtung das nun folgende ist Konfiguration in CubeMX (STM 32F4):

Ich habe ein PWM-Signal als Ausgang eines Timers in PWM Mode 2 und One 
Pulse Mode (bedeutet einmaliger Puls von High auf LOW). Dieser Timer 
wird aber erst gestartet, nachdem ein externer Interrupt einmalig 
ausgeführt wurde und ein Taster gedrückt wird.
Da der Ausgang mit einer LED verbunden ist merke ich, dass die LED erst 
nach dem einmaligem Interrupt voll leuchtet (ausser während dem 
LOW-Puls), aber davor nur SCHWACH leuchtet.
Das ist für mich ein Hinweis, dass vor dem ersten Start des Timers der 
GPIO-Pin noch keinen definierten Pegel hat. Der soll allerdings schon 
vorher auf HIGH stehen, sonst gibt es Probelme mit dem Endgerät.... geht 
das überhaupt? Scheinbar liegt ja schon von Anfang an eine Spannung an, 
die ist aber noch nicht definiert und hoch genug...

oder die LED hat einen Schaden, weil sie auch mit kurzem Flackern 
reagiert, während man den Ausgang über einen BNC-Adapter an das Endgerät 
anschließt..

Ausserhalb der Timer-Konfiguration mit "PWM Mode 2" und "CH Polarity: 
LOW" ist der Ausgang auch mit "Pull-up" konfiguriert
Gast #5793854
Lesenswert?
• ▲
▼
janhh schrieb:
> Das ist für mich ein Hinweis, dass vor dem ersten Start des Timers der
> GPIO-Pin noch keinen definierten Pegel hat. Der soll allerdings schon
> vorher auf HIGH stehen, sonst gibt es Probelme mit dem Endgerät...

Dann solltest du ihn vielleicht vorher schon mal als Ausgang 
konfigurieren.
Gast #5793896
Lesenswert?
• ▲
▼
Ich sehe auch gerade, das Endgerät reagiert ohnehin nur auf einen 
Wechsel von HIGH auf LOW, also ist es demnach eigentlich uninteressant, 
ob der Eingang vorher auf HIGH steht oder nicht ;)
Aber vielleicht kann ja trotzdem jemand was dazu sagen.. aus Interesse
#5794009
Lesenswert?
• ▲
▼
Du hast ja bereits den Timer konfiguriert, und jetzt machst du folgendes

* Du machst in der Chip-Ansicht einen rechts-Klick auf deinen Timer-Pin 
und wählst Pin-Stacking.

* Dann einen links-Klick auf den Pin und zusätzlich zum Timer einen 
GPIO-Output hinzufügen.

Jetzt kannst du den GPIO/Timer-Pin wie gewünscht direkt nach dem 
Programmstart initialisieren.

Antwort schreiben

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.

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.