mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe bei PWM benötigt


Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
möchte eine pwm generierern(f ~ 25kHz mit timer 0)

habe mir bisher folgendes überlegt:

CTC Modus oder normaler overflow.

meine frage zum ctc modus, ich habe ja dann 2 vectoren, t0_compA und B 
oder? comp A wird bei jedem comp match ausgeführt und nullt mir den 
timer richtig? comp_b müsste ich ja dann auf mein tastverhältnis 
einstellen können oder (zb ocr0a auf 200 und ocr0b auf 100, tv=0,5) 
liege ich damit richtig?
wie wird die pwm generiert (blöde frage ich weiß) aber muss ich mir 
einen pin selber per software setzen bzw rücksetzen oder macht der 
prozessor das automatisch???


viele grüße und danke schon mal für eure hilfe

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe Soft-PWM

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey dankeschön, habe die tutorien durchgearbeitet aber den abschnitt 
habe ich wohl übersehen :))

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Absolute Beginner-AVR Steckbrettprojekte: PWM   Pulsweitenmodulation

ohne Prescaler bei 8Mhz macht 31250Hz


Der PORT D 6  = PWM Ausgabe

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PD6??? nicht gut den nutze ich als ICP...:(

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
war von einem Mega 88 ausgegangen.

Dann ist es der Pin wo  OC0A oder OC0B drannsteht

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Langer Rede kurzer Sinn:

Man kann eine PWM komplett in Software machen, indem man sich an die 
entsprechenden Interrupts klemmt.
Man kann eine PWM aber auch in Hardware machen. Ob das geht, mit welchem 
Timer das geht und an welchen Pins das möglich ist, entscheidet sich 
über den Typ des Prozessors und findet sich im Datenblatt.

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine anfänger frage:

warum schreibt so mancher seine daten in das ICR1 register? das gehört 
doch eigentlich zum input Capture???

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>warum schreibt so mancher seine daten in das ICR1 register? das gehört
>doch eigentlich zum input Capture???

Weil es PWM-Modi mit OCRxA und welche mit ICRx als Top-Wert gibt. Im 
letzeren Fall hast du 2 mögliche PWM-Kanäle.

MfG Spess

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ah okay... danke schön.
also kann ich beruhigt den icp modus weiter benutzen :)

noch eine verständnisfrage, in ocr0a schreibe ich meinen maximalen stand 
rein und in ocr0b meine pulsdauer oder?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>ah okay... danke schön.
>also kann ich beruhigt den icp modus weiter benutzen :)

PWM und Input-Capture mit einem Timer?

>noch eine verständnisfrage, in ocr0a schreibe ich meinen maximalen stand
>rein und in ocr0b meine pulsdauer oder?

OCR0A ist der Top-Wert. OCR0B gibt die On-Zeit, oder ,bei invertierter 
PWM, die Off-Zeit an.

MfG Spess

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein natürlich mit 2 getrennten timern, t1 für icp und t0 für 
taskverwaltung und pwm.
kann ich OCR0B auch mit dem normalen overflow interrupt von t0 
verwenden? oder heisst er dann einfach nur timer0_ocompa???

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>kann ich OCR0B auch mit dem normalen overflow interrupt von t0
>verwenden? oder heisst er dann einfach nur timer0_ocompa???

?????

Ich versuche es trotzdem: Nein. Als Top geht nur OCR0A. Welchen 
Controller hast du überhaupt? Tippe auf ATMega164...1284.

MfG Spess

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nicht ganz, ist der 2313. aber atmega 16's hab ich auch noch ein paar 
rumliegen, allerdings rentiert sich das ganze (noch) nicht wo ich vor 
habe.
das ganze soll erst mal ein normales pt1 regelglied für einen lüfter 
werden, für später ist ein selbstanpassender regler gedacht. die idee 
ist folgende, wenn der regler einmal neu gestartet werden soll versucht 
er erst einmal über ein näherungsverfahren die regelstrecke zu bestimmen 
um sich dann seine parameter selbst zu konfigurieren. bin schon gespannt 
was dabei rauskommt^^
nur leider hängts halt ab und an an so kleinigkeiten wie hey welcher 
vector welches register setzen usw... :(

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>nicht ganz, ist der 2313

Der hat den (fast?) gleichen Timer0.

>nur leider hängts halt ab und an an so kleinigkeiten wie hey welcher
>vector welches register setzen usw... :(

Theorie und Praxis.

MfG Spess

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der hat sogar genau den gleichen t0 sowie t1, t0 mit 8bit, t1 mit 16.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>der hat sogar genau den gleichen t0 sowie t1, t0 mit 8bit, t1 mit 16.

Das beide 8 oder 16 Bit haben, heisst noch lange nicht, das die Timer 
gleich ausgestattet sind.

MfG Spess

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
doch die ausstattung ist nahezu identisch, lediglich die registernamen 
sind (ganz selten) um einen buchstaben anders.
so heisst zb das Interruptflag beim tiny ICIE und beim atmega16 TICIE

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>doch die ausstattung ist nahezu identisch, lediglich die registernamen
>sind (ganz selten) um einen buchstaben anders.
>so heisst zb das Interruptflag beim tiny ICIE und beim atmega16 TICIE

Bei allen AVRs?

MfG Spess

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann ich dir ehrlich gesagt nicht sagen, ich nutze nur die zwei. für 
kleinere projekte den attiny2313 und für alles größere den atmega16.
ich weiß zb das beim atmega8 mit den timern irgendwas anders ist, aber 
nicht genau was (hab ich irgendwo in letzter zeit hier im forum gelesen)

> OCR0A ist der Top-Wert. OCR0B gibt die On-Zeit, oder ,bei invertierter
> PWM, die Off-Zeit an.
 welcher modus ist das dann??? fast pwm mit 8 bit oder?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>welcher modus ist das dann??? fast pwm mit 8 bit oder?

Das hat nichts mit dem Mode zu tun, sondern wird mit den COM-Bits im
TCCRxA-Register eingestellt.

MfG Spess

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im klartext diese beiden interrupts kann ich in (nahezu) jedem modus 
aufrufen?
und alles was ich bisher in dem overflow int hatte kann ich in den OCR0A 
schieben?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>im klartext diese beiden interrupts kann ich in (nahezu) jedem modus
>aufrufen?

Du rufst nicht auf, sondern du lässt aufrufen.

>und alles was ich bisher in dem overflow int hatte kann ich in den OCR0A
>schieben?

Warum? Der Overflow Interrupt wird ausgelöst, wenn der Top-Wert erreicht 
wird. Dabei ist es egal, ob das ein fixer Wert oder ein Register ist.

MfG Spess

Autor: AVR Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Du rufst nicht auf, sondern du lässt aufrufen

schon klar aber ich sollte ja eventuell das flag setzen :))

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.