Hallo zusammen,
ich versuche mich gerade mit meinem MSP an einem Grafikdisplay. Ich
würde nun gerne eine Funktion schreiben, um Kreise zu zeichnen. Da
brauche ich den Sinus zu und somit die math.h. Wenn ich die einbide,
wird mein Code zu groß. Der IAR, also die kostenlose Version macht da
nicht mit.
Kann auch keinen anderen Compiler nutzen, da ich mein USB-Modul damit
nicht ans Laufen bekommen, also zum Flashen des MSP.
Hat jemand einmal eine Funktion geschrieben, um eine Sinus zu berechnen?
Wäre klasse, wenn mir da jemand weiterhelfen könnte.
Vielen Dank.
Grüße
Mario
Ist zwar für WinAVR und nicht der vollständige Source meiner GLCD, aber
es kann dir weiterhelfen.
Mit nachfolgendem Source kannst du Kreise, Elipsen und abgerundete
Rechtecke zeichnen (Tonnen usw.). Linien Farbe und Füllfarbe werden
berücksichtigt.
um einen Kreis zu zeichen zb.
glcdRoundRect(Left, Top, Left +X, Top +X, X / 2, X / 2, BLACK, WHITE);
dh. in einem Quadratischen Bereich auf dem Display wird der Kreis
gezeichnet. Die abgerundeten Ecken müssen demzufolge halbe Seitenlänge
besitzen = Radius desd Kreises.
Ist der rechteckige Bereich kein Quadrat würde man eine Ellipse
zeichnen. Verringert man die Radien a,b so entsteht ein Rechteck mit
abgerundeten Ecken.
Dh. mit dieser Funktion kannst du ausgehend vom einen Rechteck bis zu
einem Kreis/Ellipse zeichnen.
Beachte das die interenen Datentypen nur Koordinaten im Bereich 0 bis
255 -> Byte, fassen können. Wenn du einen größeren Bereich benötgst
musst du diese Variablen anpassen -> uint32_t -> long etc.pp.
Hallo
Wenn du genügend freies Flash/EEPROM hast, könntest du auch eine
Lookup-Table für den Sinus erstellen. Mit 1 Byte pro Stelle und 128
Stellen (zwischen 0 und 90 Grad) kriegt man schon sehr viel hin.
Gruss
Michael
Mario,
bei der DEMO Version von IAR sind die Grenzen irgendwann mal erreicht.
http://kurt.on.ufanet.ru/
Hier findest du einen Programmer für deine MSP USB Schnittstelle,
vielleicht hilft das weiter, MSPGCC und das Limit ist überwunden.