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
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.
ich kann einen Ausgang, der auf einem Kanal eines Timers liegt nicht mit einem "Zustand vor Timer-Start" konfigurieren. Da sehe ich hier zumindest keine Möglichkeit
janhh schrieb: > ich kann einen Ausgang, der auf einem Kanal eines Timers liegt nicht mit > einem "Zustand vor Timer-Start" konfigurieren. Dann konfiguriere ihn vor Start nicht als Timer
Ich würde vorschlagen, zu Programmieren anstatt alles nur zu konfigurieren.
ich sagte ja gleich von Anfang an: CubeMX ;) Wie geht das? Ich sehe keine Funktion dafür
Es wäre schön, wenn jemand hier ist, der mir auch sagen könnte, ob bei dieser Konfiguration in CubeMX der GPIO-Pin normalerweise auch von Anfang an genau diesen HIGH-Pegel hat
Probiere es doch aus. Vermutlich geht das schneller, als auf Expertenrat zu warten. Ich kann es Dir nicht sagen, das habe ich so noch nie ausprobiert.
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
Und was ist direkt bei Controller Start? Es dauert immer einige Zeit bis der gewünschte Pegel da ist. Egal ob pwm oder nicht. Da hilft ggf nur eine Hardware Lösung mit Pullup o.ä.
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.
:
Bearbeitet durch User
ah okay, danke! Ich nehme mal an, der Timer hat dann bei Auslösung automatisch die höhere Priorität...
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.