www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM --> Frage zum Programm


Autor: Samy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend

Das wird jetzt ein schwieriges Anliegen. Kurze Vorgeschichte à habe vor
geraumer Zeit ein Programm geschrieben, dass auf 8 Kanälen PWM erzeugen
soll (Lüftersteuerung für AVR8515).
Mit Hilfe dieses Forums und div. Codevorlagen hat es dann
funktioniert.


Gut jetzt (halbes Jahr später) wollte ich es umschreiben auf den Atmega
16 à gut geht dank diesem Forum à  da ist mir jetzt aber leider ein
Codebereich ins Auge gefallen, den ich nicht mehr verstehe!!!!

TIMER0_OVF:

in sregtemp, sreg           ;SREG sichern
inc pwz                          ;PWMzähler erhöhen
cpi pwz, pwu                ;PWM-Zählumfang erreicht
brne TIMER0_1
clr pwz

TIMER0_1:

;PWM ausgeben
reti

Als erstes à teilweise geklaut bei Mr. Peter Dannegger à laut meinen
Unterlagen!!!

Bezogen auf den Anhang!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


SREG sichern lassen wir mal weg!
Der AVR schaut jetzt à PWM Zählumfang erreicht à nein à PWM-Schleife
ausführen usw.
PWM Zählumfang erreicht à ja à auf null setzen à PWM-Schleife
ausführen.

Das macht keinen Sinn!!
Wenn er sagen würde PMW Zählumfang erreicht à nein à Sprung sonst wo
hin und PWM-Schleife nicht ausführen à PWM Zählumfang erreicht à ja à
PWM ausführen ..

Das macht Sinn, da die PWM Frequenz beeinflusst werden kann.

Ich verstehe diesen Code nicht mehr!! Da dieser Code hier im Forum bei
div. Fragen einfach übernommen wurde kommt mir die Frage à ist der Code
i.O. und ich versteh es einfach nicht, oder sonst was.

Bin euch echt dankbar für Hilfe à dieser Codebereich sollte eigentlich
schon lange funktionieren, dass ich andere Sachen machen kann!

Echt Danke an alle für Hilfe!!

Autor: Andi K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist völlig in Ordnung.
Mittels des PWM-Zählers (PWZ) wird ja immer in Verbindung mit den
Registern Solln (Soll0, Soll1...Soll7) verglichhen, ob einer der Kanäle
an- oder ausgeschaltet werden muß.
Wenn eine PWM-Periode zu ende ist, was von PWU bestimmt wird, beginnt
die PWM-Periode von vorne.
Die eigentliche PWM-Funktion fehlt ja in Deinem Programm völlig.
Ich denke mal, Du hast das damals auch noch nicht verstanden, vom
Algorythmus her.

MfG
Andi

Autor: Samy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend

Als erstes mal Danke für die Antwort.

Sorry für die Frage --> die Antwort gelesen --> auf meinen Code
geschaut --> und sofort ist der Groschen gefallen(wie ein
Vorschlaghammer).

"Ich denke mal, Du hast das damals auch noch nicht verstanden, vom
Algorythmus her."

Nicht ganz --> einfach Code abschreiben und gut --> ne das ist nett
mein Ding.
War gestern wohl etwas vernebelt im Hirn.

Danke nochmal!!

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.