Hallo Freunde, ich sitze seit einiger Zeit an dem Programmcode zur Erzeugung einer 3-Phasen PWM mittels des STM32F103 Mikrocontroller. Die Bedingung ist, dass die 3 Kanäle versetzt eingeschaltet werden. Allerdings komme ich ab diesem Punkt nicht weiter. Es ist zwar so, dass jeweils nur ein Kanal aktiv ist, jedoch pulsiert das Signal eines Kanals. Ich brauche eure Hilfe beim Programmcode, da ich nicht so der Meisterprogrammierer bin ;-) Im Anhang habe ich ein Bild der Schleife des Programmcodes abgelegt. Zusätzlich noch zwei Oszilloskop Bilder. Diese zeigen einmal alle drei Kanäle gleichzeitig und einmal mit kleinerer Zeitbasis den einzelnen Kanal 1 und die zugehörige gewünschte Frequenz und Periodendauer. Ich arbeite an diesem Thema für meine Studienarbeit und bin langsam am Ende ich brauche eure Hilfe! Danke im Vorraus für eure Antworten Mfg
Was willst du den erreichen? Der µC macht doch genau das was du programmiert hast... Unter Dreiphasen PWM versteh ich etwas anderes. Wenn du aber das wirklich so haben willst wie beschrieben, dann musst du den Wechsel im Tim-Interrupt vollziehen. (habe ich das jetzt wirklich geschrieben :rolleye: :-)) Mal dir ein inkrementierendes Timersignal auf und schreib was du wann machen willst auf die Zeitachse. G Ert
Hallo Nils, vielen Dank für deine schnelle Antwort. Ja über den Timer habe ich es schon probiert, allerdings nicht hinbekommen. Ich weiß nicht genau wie und wann ich einen Interrupt erzeugen / aufrufen kann. Dafür fehlt mir das Verständnis und die nötige Syntax. Ich habe mal ein Bild des Counters gemalt um es mir vor Augen zu führen wie der Controller zählt und arbeitet. Es hapert an der Umsetzung in die Syntax. Die PWM funktioniert ja auch richtig allerdings soll jeder Kanal nur einmal eingeschaltet werden dann, ein Interrupt oder so ähnlich (?) ;-) MFG
Genau für so etwas gibt es Datenblätter :-) Schau mal hier http://www.diller-technologies.de/stm32.html#timer_pwm und da http://www.diller-technologies.de/stm32.html#interrupts_timer ist sogar ein Stm32f1 Du musst den Overflow-Int aktivieren und dann die entsprechenden Kanäle an bzw aus schalten. wenn der mc sowieso nichts anderes machen soll (bzw nur einmal) dann kannst du es auch einfach selbst programmieren und nur die Pins an und ausmachen ohne timer, stichwort Software-pwm
Auf meiner Suche nach Lösungsansätzen bin ich bereits auf eine Vielzahl solcher programmbeispiele gestoßen. Bei dieser Umsetzung funktioniert es allerdings nicht. In wie weit ist denn mein vorhandener Code richtig, bzw wie müsste ich ihn in den interrupt einfügen. Mfg
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.


