www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Phasenverschiebung fuer PWM-Signal


Autor: Vladimir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle

ich brauche ein Phaseverschiebung fuer ein PWM- Signal. Wenn ich ganz
einfach nach der Initialisierung PWM am Pin RC2 und anschlissend re-
transmitte ich dass Signal an PORTB mit einem delay, so wie.. zB:

    call delay
   movf PORTC, W
    andlw 0x04
   movwf PORTB

dann bekomme am PORTC ich ein PWM-Signal mit etwa unterschiedlichen
Takverhaelniss. Also, ein Phaseverschiebung macht er nicht.

Wie soll ich ein sauberes Phasevershiebung umg. 1/2 Periode
programmieren ?

Wer eine Idee hat bitte meldet.

Danke

Autor: Arno H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem Inverter?
Arno

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachdem du weist wie lang eine Periode ist (Zeit) startest du auf PortB
nach der halben Perioden und beendest nach der ganzen wieder, du
brauchst nur einen Timer dazu.

Autor: Vladimir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arno,

ein Inverter- waere zu einfach- er macht nur die ganze Periode, also
180 grad, weil ich brauche nur 90 grad (oder weniger) ; ich habe es
schon am Anfang ueberprueft :).

Hubert,

ist umgf. was ich auch tuhe. Ich starte mit einem delay, dann gebe aus
auf PORTB. OK, ich vergesse dass ganze rechtzeitig zu beenden...
Also, wenn ich zB. Timer0 wahle (Timer2 ist besetz bei PWM) da muss
ich ihm nur eine richtige Zahl uebergeben, die zu meine Periode passt.
Ist dass richtig ?

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau so hätte ich mir das vorgestellt. Machst du beim Start tatsächlich
ein delay? also eine Warteschleife? Ich würde bereits mit dem Timer
starten, halber Wert der Periode.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm?

Steigende Flanke altes Signal erkannt
delay
Steigende Flanke neues Signal ausgeben
...Periode vergeht
Fallende Flanke altes Signal erkannt
gleicher delay
Fallende Flanke neues Signal ausgeben
...Bis zum nächsten mal

Wo is das Problem?

Autor: Vladimir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und villeicht noch eine dumme Frage. Wenn ich in meinem Programm mehrere
Interrupts implementiere (fur PIC1687xx, zB.), wie soll ich es tuhn ?
In Interrupt Service Routine  Bits in Register INTCON abfragen ?
Gibt's vielleicht eine elegantere Metode - in Datenblatt es ist
leider slcleht geschrieben.

Autor: Vladimir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hubert,
ich starte, ja, mit eine Warteschlefe, aber Timer ist wahrsheinlich
besser.

Simon,

um die Flanken zu erkennen baruche ich zuerst ein Interrupt, oder ?
Ich habe nicht viell PIns zu Verfügung am PIC 16f187xx: nur RC2 ;
wenn ich PWM mache da ist RC2 schon als Output comfiguriert

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einer Warteschleife steht ja alles andere auch.
MÖglichkeiten zum realisieren gibt es sicher eine Menge.
In der Hauptschleife pollen wann RC2 gesetzt wird oder noch besser beim
setzen von RC2, Timer mit halben Wert von RC2 laden und starten, wenn
der Timer abgelaufen ist PortB setzen, Timer mit ganzen Wert laden,
starten, wenn abgelaufen PortB zurücksetzen. Da braucht du nur den
Interrupt von Timer0.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.