Forum: Mikrocontroller und Digitale Elektronik Hardware PWM-Signal auf anderen Pin ausgeben


von Max (Gast)


Lesenswert?

Hallo,

ist es irgendwie möglich das Hardware-PWM Signal zusätzlich noch auf 
einem zweiten Pin auszugeben?

Hatte darüber irgendwo hier im Forum mal was gelesen. Finde den Beitrag 
aber nicht mehr.

von Fabian (Gast)


Lesenswert?

nunja du könntest ja bei ner flanke des PWM Signals nen interrupt 
auslösen, d.h. z.B. Pwm signal mit einem externen interrupt verbinden, 
dann biste halt je nach Frequenz nen paar nanosekunden dem ersten pwm 
signal hinterher. Sicher gibt es auch eine Softwarelösung. Weiss grad 
garnicht, ob das so geht wie ich mir das denke, aber kannst man nicht 
den Zustand eines Pwm Signals am jeweiligen Portpin abfragen? dann 
würdest halt immer wenn dein mc nix zu tun hat den pin abfragen. Ob das 
klappt gänt einmal davon ab, ob man überhaupt den portpin im pwm modus 
abfragen kann und wie ausgelastet dein mc ist. Falls er zu wenig 
freiraum besitzt könnte es kritisch von der Zeit her werden.

Das sind meine Ideen hierzu kann auch sein, dass ich mich auf völlig 
falschen Terrain bewege :)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ein Hardware-PWM löst normalerweise (wenn aktiviert) einen 
OutputCompare-Interrupt oder einen Overflow-Interrupt beim 
entsprechenden Timer aus, wenn der Schaltzustand geändert wird. Diesen 
Interrupt kann man auf eine Routine schicken, in der ein anderer Portpin 
umgeschaltet wird. Wie schon gesagt, vergehen hier aber ein paar 
Nanosekunden. Absolut synchron wird´s also nicht.

von Max (Gast)


Lesenswert?

Ein Interrupt fällt bei mir schon einmal weg, da ein weiterer 
Interrupt(benutze schhon zwei) die anderen stören würde. Gab nämlich 
schon bei den anderen beiden Probleme, das konnt ich so einigermaßen 
deichseln.

Nun ein anderer Ansatz:

Kann ich mir das erzeugte PWM-Signal von Timer1 z.B. auf OC1A und OC2A 
ausgeben lassen? Im Moment wird es ja nur an OC1A ausgegeben.


von Matthias (Gast)


Lesenswert?

zur Letztetn Frage mit Timer1 auf OC1A und OC2A: NEIN.
OC2A gehört zum Timer2.
Wozu brauchst du ein und dasselbe Signal an zwei Pins????

von Max (Gast)


Lesenswert?

Oh, sorry! Meinte OC1A und OC0A.

von Max (Gast)


Lesenswert?

Ach man, jetzt bin ich total durcheinander;-9

OC1A und OC1B

von Matthias (Gast)


Lesenswert?

Das ist doch dasselbe. Intern sind die PWM-Ausgang des Timers1 NUR an 
die Anschlüsse OC1x geführt.
Wenn du das Signal an zwei Verbraucher führen willst, dann tue es 
einfach..
Wozu zweimal dasselbe ausgeben?? Wozu brauchst das?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

OC1A und OC1B geht. Die kannst Du dann sogar invers ausgeben. Du mußt 
dazu nur beide OCR-Register (A und B) auf denselben Wert setzen und über 
die COM1A und COM1B Bits das Ausgangsverhalten einstellen. Steht alles 
im Datenblatt.

von Fabian (Gast)


Lesenswert?

also 3 Interrupts zu benutzen sollte, wenn man sobald einer gestartet 
wird das global interrupt flag löscht und das statusregister sichert, 
kein Problem geben, oder wieso sind deine interruptroutinen so 
hochgradig zeitkritisch?

von Fabian (Gast)


Lesenswert?

@Matthias

habe bis jetzt auch nicht begriffen, wieso er nicht nur ein pwm signal 
benutzt...
normal steuert man doch mit einem pwm signal nur und schliesst den 
verbraucher nicht direkt am pwm signal an.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Macht euch doch nicht verrückt, er wird uns die Antwort schon noch 
geben...

von Dmitri (Gast)


Lesenswert?

Lasst mich mal raten, wozu er so was braucht...

Max möchte an einem anderen Pin SW-gesteuert je nach dem

a. das phasengleiche PWM-Signal
b. eine 1
c. eine 0

erzeugen.

Je nach Brückenkonfiguration lassen sich Lasten zu- und abschalten. Bei 
zwei gleichen PWMs wird die Last mal auf Bremse oben, mal auf Bremse 
unten gestellt, sprich, sie ist abgeschaltet. Wenn dann eine 
Brückenhälfte eine 1 bekommt, wirkt die Kraft nach irgendwo. Bei einer 
Null umgekehrt.

Na, habe ich recht?

Gruss
Dmitri

P.S. Das werde ich demnächst in meinem Projekt realisieren.

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
Noch kein Account? Hier anmelden.