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
Wie schnell brauchst Du es denn tatsächlich? Oder soll es nur schnell sein - was immer 'schnell' bedeuten mag?
Naja. Eine Division zu fuss ist Schieben und subtrahieren. Eine Multiplikation ist schieben und addieren. Ohne unterstuetzende Hardware ist beides dasselbe.
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"
>Klar, ne 64k-Tabelle in nem Tiny mit 2k Flash...
WinRar
duckundweg
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.
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....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.