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.
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 :)
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.
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.
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????
Ach man, jetzt bin ich total durcheinander;-9 OC1A und OC1B
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?
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.
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?
@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.
Macht euch doch nicht verrückt, er wird uns die Antwort schon noch geben...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.