Tachometer auf Display

OP #862785
Lesenswert?

Hi,
ich programmiere gerade ein Tachometer für einen kleinen Motor, welches 
auf ein LCD Display ausgegeben werden soll.(Geschwindgkeitsmessung und 
LCD Ansteurung funzt schon)

Ich dachte mir, das ich ein Tachometer wie auch im Auto zeichne(Ein 
Kreis, und vielleicht 330Grad werden zur Geschwindigkeitsanzeige 
genutzt. Unten ist dann halt eine Lücke zwischen Min und Max 
Geschwindigkeit)
Maximal sollen 400 km/h dargestellt werden können, und sagen wir ich 
nutze 330° zur Anzeige, dann würde 1 km/h Geschw.änderung doch 
330/400=0,6 Grad Zeigeränderung entsprechen, oder?
Dann müßte ich doch nur von einem Nullpunkt ausgehen, die Anzahl der 
Gradsegmente aufaddieren die der jeweiligen Geschwindigkeit entsprechen 
und das dann in xy-Polarkoordinaten umrechnen...

Würde das erstmal so funktionieren?

Aber für die Berechnungen brauche ich ja trigonometrische 
Funktionen..ist das nicht ar...langsam? Kann man das irgendwie durch 
Tricks vereinfachen und die sin/cos Funktionen vermeiden? Ich habe da 
Linien/Kreisalgorithmen von einem Herrn Bresenham gefunden, die ziemlich 
genial zu sein scheinen und ganz ohne sowas auskommen. Gibts sowas 
ähnliches auch für sinus etc?
Oder ist mein ganzer Ansatz Mist und zu Umständlich?

noch eine Frage zur Polarkoordinatenumrechnung:
Ich habe bei Wikipedia geschaut, und diese ganzen Polarformeln haben als 
0Grad Ursprung die X-Achse. Kann man diesen Ursprung auch irgendwie an 
eine andere Stelle legen(wie würde sich das in der Formel auswirken?

Und wie wirken sich globale Variablen auf die Geschwindigkeit aus? 
Werden die irgendwie langsamer angesprochen? Oder ist das egal?

Sorry falls das alles Kindergartenfragen sind, aber ich bin Anfänger und 
muss noch viel lernen. Evtl hab ich auch erstmal ganz andere Probleme 
als mich um irgendwelche Geschwindigkeitsoptimierungen zu kümmern ;P

P.S: Ich arbeite auf einem H8S irgendwas Hitachi mikroc.
Gast #862821
Lesenswert?

Naja dann wird das eh nix mit 0,6 Grad. Wie zeichnest du denn den Kreis?

Im Prinzip brauchst du ja nur den Mittelpunkt und dann eine Tabelle mit 
60 x,y Punkten. Die sollten einen viertel Kreis ergeben. Den kannst du 
dann in alle Richtungen drehen wie du es brauchst. Den Zeiger kannst du 
dann mit dem Bresenham bzw. dem Anstieg machen. Du hast ja dann den 
Mittelpunkt und auch die Zielkoordinaten vom Kreis.

http://de.wikipedia.org/wiki/Bresenham-Algorithmus

Hier ist auch Beispielcode dabei.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren