www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM -- Pulsbreite 0 funktioniert nicht!


Autor: Parvis S. (parvis)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe folgendes Problem und wollte mal nachfragen, ob mir jemand von 
Euch weiterhelfen kann, also folgendes

Ich benutze einen ATMega8 (Programmierung in ASM) und moechte damit eine 
PWM fuer eine Motoransteuerung verwirklichen (Motor soll maximal 
beschleunigt bzw. abgebremst werden). Der Motor ist genaugenommen ein 
Festplattenmotor (tut aber eigentlich nichts zur Sache).

Problem:
  Ich wuerde gerne ueber die Pulsbreiten-Einstellung u.a. auch ein 
durchgehendes High bzw. Low hinbekommen (also Pulsbreite maximal bzw. 
null). Wenn ich die Pulsbreite nun maximal einstelle funktioniert das 
auch, aber leider nicht, wenn ich sie null stelle; dort sehe ich auf 
meinen Oszi fuer genau einen Takt (also fuer 125ns bei 8MHz) ein 
High-Signal. Warum setzt er vor jeden neuen Periode den Ausgang auf high 
und wie laesst sich das vermeiden oder ist spinnt einfach mein 
ATMega8??? Bin fuer jegliche  Hilfe dankbar.

Beste GRuesse,

Parvis

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Parvis S. (parvis)

>durchgehendes High bzw. Low hinbekommen (also Pulsbreite maximal bzw.
>null).

Geht beim AVR nicht. Siehe Doku.

MfG
Falk

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht immer nur eines, entweder durchgehende Null oder durchgehende 
Eins, was durch invertieren des Ausgangsverhaltens des betreffenden 
Timers jeweils erreicht werden kann.

Autor: Tassilo Böhr (big_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also beim AtMega48/88/168 gibt's den 'Phase and Frequency Correct PWM 
Mode':
...
The extreme values for the OCR1x Register represents special cases when 
generating a PWM waveform output in the phase correct PWM mode. If the 
OCR1x is set equal to BOTTOM the output will be continuously low and if 
set equal to TOP the output will be set to high for noninverted PWM 
mode.
...
Das ist doch das, was gesucht wird, oder?

Vielleicht kann ja auf einen Schaltkreis aus dieser Familie gewechselt 
werden... (Ich kenne die Daten des AtMega8 in dieser Hinsicht nicht 
genau)

Tassilo

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ja wohl nicht so schrecklich schwierig, bei PWM=0 und/oder PWM=max 
den entsprechenden Ausgang schlicht umzukonfigurieren.

Autor: Parvis S. (parvis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal vielen Dank fuer die schnelle Hilfen.

Der Phase- and Frequency Correct mode gibt es auch tatsaechlich beim 
ATMega8 der dann laut Datenblatt keine spikes liefert. Werde das gleich 
mal ausprobieren.

Beste Gruesse,

Parvis

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.