www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR-ASM: geht das noch effizienter?


Autor: Stefan Meikel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein dig. Filter, das signed 8-bit Werte multipliziert und dann
auf einen 24-bit Akkumulator aufaddiert.

Mich ärgert dabei die Sequenz mit clr R25, sbrc, und com R25. Das macht
die ganze Performance kaputt, nur weil man auf negative Zahlen Rücksicht
nehmen muss...

Gibt es da irgendwelche Tricks um das noch zu beschleunigen?

Hier der Code:

muls R18,R19         // multiply two 8-bit values
clr  R25             // clear for sign ext. if result is positive
sbrc r1,7            // check if result is negative
com  R25             // neg. sign extension if negative (0xFF)
add  R22,r0          // add mul result to accumulator
adc  R23,r1          // next with carry
adc  R24,R25         // add sign extension

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
muls R18,R19         // multiply two 8-bit values
sbc  R25, R25        // neg. sign extension if negative (CY = 1)
add  R22,r0          // add mul result to accumulator
adc  R23,r1          // next with carry
adc  R24,R25         // add sign extension


Peter

Autor: Stefan Meikel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Perter,

klasse, vielen Dank. Damit kann ich knapp 1Mio Instructions pro Sekunde
sparen ...

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.