www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Software-PWM optimieren


Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe folgenden Code für eine 5Kanal 8bit Software-PWM an PortB0 bis
B4 auf dem atmega8 geschrieben. Nun bin ich noch am feilen, ob man den
Code nicht noch etwas optimieren kann (bzgl. Laufzeit). Ich würde mich
freuen, wenn noch jemand einen Tipp für mich hätte. Mich "stört" im
Moment vor allem noch das ständige neuladen von temp in der 4. Zeile.
lum0-lum4 enthalten die jeweiligen pwm-Werte. Der Rest müsste
eigentlich selbsterklärend sein.

###################
loop:
dec counter
breq neu
ldi temp,0x1F

cpse counter,lum0
cbr temp,1
cpse counter,lum1
cbr temp,2
cpse counter,lum2
cbr temp,4
cpse counter,lum3
cbr temp,8
cpse counter,lum4
cbr temp,16

or temp2,temp
out PORTB,temp2
rjmp loop

neu:
clr temp2
rjmp loop
###################

(Ich hoffe, ihr verzeiht mir diesen Code direkt in der Nachricht. Aber
für diese paar Zeilen einen Anhang zu machen, halte ich dann doch für
übertrieben)

Danke!

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cp counter,lum4
rol temp
cp counter,lum3
rol temp
cp counter,lum2
rol temp
cp counter,lum1
rol temp
cp counter,lum0
rol temp
out PORTB, temp

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das spart nochmal 0b10.0000001 Takte pro Durchlauf.
Auf die Idee, einfach mit rol den Carry ins Register zu schieben, bin
ich nun wirklich nicht gekommen.

Danke Benedikt!

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.