Gast
#4413427
Moin! Taucht irgendwie immer mal wieder als Frage auf: Lineares interpolieren... Hier hatte ich eine Idee und konnte auf einem Attiny viel Code einsparen. Mein "mix888" braucht nur 15 Instruktionen = 30 Bytes und interpoliert zwei 8 Bit Werte mit einem 8 Bit Gewicht und liefert ein 16 Bit Ergebnis. Wer die Nachkommastellen nicht braucht, ignoriert eben das Byte... Meine Lösung habe ich so nirgendwo gefunden, und da ich hier (und auf avrfreaks) gerne mitlese kann ich das ja mal posten. Die Mathematik dahinter ist auch nicht AVR Spezifisch: Sie lohnt sich dann, wenn keine HW Multiplikation vorhanden ist, denn sie benötigt nur Addition und Shift. Alle Details und Erklärungen sind im ASM file. Da die Routine auch das "normale" Multiplizieren ersetzen kann und nur unwesentlich langsamer ist, hilft sie beim Code-Sparen nochmal. Vielleicht hat jemand eine Idee wie man noch Instruktionen rauswerfen kann? Das wäre cool. Mein AVR Assembler Wissen ist noch ziemlich frisch. Grüße, TinyBear