Huhu, ich habe eine Programm für einen Attiny44A geschrieben. Dort nutze ich eine 256 Byte look-up-table um eine Kurve auszugeben. Also ich laufe die Tabelle von vorne bis hinten durch und geben die einzelnen Werte aus. Nun möchte ich dies in einer andernen Geschwindigikeit tun. Erste Idee war es die Schritte zu erhöhen. Dies funktioniert auch sehr gut. Ich lese nur jeden zweiten oder dritten Wert ein. Ergo schneller. Meine Frage ist, ob es vieleicht ein Verfahren gibt mit der ich z.B. jeden 1,5 oder 1,8 Wert einlesen kann. Möchte die Schrittweite flexiebler einstellen können. Bei einer Schrittweite von 1,5 stelle ich mir vor, dass er dann z.B. folgende Werte einließt. 1,3,4,6,7,9,10 (nur ein Beispiel weiß gerade nicht genau ob der Mittelwert stimmt) In meinem Fall spielt die Verkleinerung der Schrittweite keine Rolle.
Definiere dir eine Variable "Schritte-hochaufgelöst", in der du zB die Schritte mit Faktor 16 zählst. Ein Schritt wäre dann +16, 1.5 Schritte wären +24 usw. Zum Zugriff auf die Tabelle nimmst du dann diese Variable / 16. Etwas Erläuterungen zu solch einem Vorgehen findest du unter "DDS Phasenakkumulator".
In der Computergraphik läuft das unter Bresenham-Algorithmus
W.A. schrieb: > In der Computergraphik läuft das unter /Bresenham-Algorithmus/ Hihi, das war auch mein erster Gedanke :-)
Je nach Implementation kannst du auch einfach öfter aus der tabelle lesen (den timer schneller stellen z.B.)....
aus DDS: NCO (numerically controlled Oscillator) Siehe auch Beitrag von Georg G.
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.