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
Gast
#972810
Wie schnell brauchst Du es denn tatsächlich? Oder soll es nur schnell sein - was immer 'schnell' bedeuten mag?
Gast
#972978
Naja. Eine Division zu fuss ist Schieben und subtrahieren. Eine Multiplikation ist schieben und addieren. Ohne unterstuetzende Hardware ist beides dasselbe.
Gast
#972986
sonst keine Nebenbedingungen - nur schnell?? Dann nimm eine (riesige) Tabelle ;-))
Klar, ne 64k-Tabelle in nem Tiny mit 2k Flash... Ein paar realistischere Ideen wurden andiskutiert in Beitrag "Division von unsigned char"
Gast
#973158
>Klar, ne 64k-Tabelle in nem Tiny mit 2k Flash...
WinRar
duckundweg
Gast
#973174
7zip is viel besser XD
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.
Gast
#973204
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
Bitte melde dich an, um einen Beitrag zu schreiben.