mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM und/oder Simulationshilfe gesucht


Autor: Hans Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin so langsam am verzweifeln...
Habe mir etwas über PWM angelesen und möchte damit nun auch ein wenig
"spielen". Habe einen AT90S2313 + 4MHz Quarz genommen und an PB3 (dem
PWM Pin) in Reihe ein R und LED Richtung GND geklemmt. Soweit so gut.
Bis hierhin klappt noch alles...
Was ich wollte, war das die LED wie folgt blinkt: 4sec an, 1sec aus,
4sec an, 1 sec aus usw. Also eine Frequenz von 1/5sec=0,2Hz mit einem
duty cycle von 80%.
Mit den Registern muss ich mich aber irgendwie stark vertan haben, bzw.
mache das immer wieder falsch:

TCNT1H = 0x4C 5sec als Obergrenze für Timer 1 einstellen
TCNT1L = 0x4B
OCR1H = 0x0F 1sec als Vergleichswert für PWM festlegen
OCR1L = 0x42
TCCR1A = 0xC3 invertierenden PWM und 10-bit PWM Modus setzen
TCCR1B = 0x05 Takt-Teiler von 1024 wählen

Nun macht die LED erst eine Zeitlang gar nichts, dann fängt sie ca. im
Sekundentakt ganz kurz an zu blinken.
Was mache ich falsch, bzw. was für Werte müssen die Register haben?
Leider habe ich kein Oszilloskop. Kann man so etwas irgendwie anders
messen, oder simulieren?

Gruß und Danke,

Hans

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nun ja, bei Hardware-PWM ist die Zählerweite(1023) vorgegeben, das
Setzen con TCNT1 bewirkt nur beim ersten Mal was. Bei 10bit-PWM,
Vorteiler 1024 und Quarz 4MHz ergibt sich eine PWM-Frequenz von 1,9Hz,
und das ist auch schon die langsamste Frequenz, die mit Hardware-PWM
erreichbar ist.
Sinnvoller wäre es, beispielsweise alle 0,1s einen Timerinterrupt
auszulösen, in der ISR dann Zählen und daraus die entsprechenden
Portaktionen auszuführen.
Simulieren kann man das ganze mit AVR-Studio, erhältlich bei Atmel.

Autor: Hans Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Wink mit dem Zaunpfahl.
Habe das Datenblatt ausgedruckt und die Seite (35) gefunden. Warum habe
ich das am Bildschirm bloß nicht gesehen. ARGH!

Hans

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.