mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik schnelle Division für ATtiny2313


Autor: Rudi D. (rulixa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich brauche Fixkomme div und mul für tiny2313.
Da gibts ja die AVR200.pdf die das gut beschreibt. Es funktioniert genau 
so, wie man die Division und Mul. in der Schule lernt.
Ich nehme noch 8 bit dazu, sodass der Quotient dann auch 8 bits 
Nachkommastellen hat, was mit 1/256 nur einen max. Fehler von weniger 
als 0,4 Prozent für mich ausreichend ist

Es gibt dann noch die "Newton-Raphson division" im en.wikipedia.
Da wird der Kehrwert des Divisors ermittelt und das ganze läuft dann auf 
eine Multiplikation hinaus.

Kann es sein, dass diese Methode nur Sinn macht, wenn man einen HW 
Multiplizierer im uC hat?
Was ja bei tiny13 nicht der Fall ist, also bleibt nur die klassische 
Methode.
Oder hat jemand eine Idee?

Rudi

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schnell brauchst Du es denn tatsächlich? Oder soll es nur schnell 
sein - was immer 'schnell' bedeuten mag?

Autor: aha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja. Eine Division zu fuss ist Schieben und subtrahieren. Eine 
Multiplikation ist schieben und addieren. Ohne unterstuetzende Hardware 
ist beides dasselbe.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sonst keine Nebenbedingungen - nur schnell??

Dann nimm eine (riesige) Tabelle ;-))

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar, ne 64k-Tabelle in nem Tiny mit 2k Flash...

Ein paar realistischere Ideen wurden andiskutiert in

Beitrag "Division von unsigned char"

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Klar, ne 64k-Tabelle in nem Tiny mit 2k Flash...

WinRar

duckundweg

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
7zip is viel besser XD

Autor: Rudi D. (rulixa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Johann, das ist interessant, weil es eine deutliche Reduktion 
bringen kann.
Mit der Reziproktabelle braucht man den Kehrwert nicht mehr berechnen.

Da wäre noch eine Interpolationsmethode zur Reduktion der Tabelle von 
Vorteil.

Autor: sdadsa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Von den 2k Flash kann man 1k auf den Interpolationsalgorithmus und 500 
byte auf die Tabelle verpuffen. Dann bleiben ja noch 500 byte fuer den 
effektiven Code....

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.