mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik analoge Anzeige auf GLCD


Autor: Suchender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

wenn ich ein Zeigerinstrument auf einem GLCD darstellen möchte wie setze 
ich das am besten um? Baue ich mir da einen eigenen Fond zusammen wie 
bei einer digtalen Darstellung, pro Wert (Zeigerstellung) einen 
Datensatz? Gibt es evt. einen Creator?

Danke für Antworten

Autor: Edi R. (edi_r)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht nützt Dir der Bresenham-Algorithmus etwas.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wenn ich ein Zeigerinstrument auf einem GLCD darstellen möchte wie setze
> ich das am besten um? Baue ich mir da einen eigenen Fond zusammen wie
> bei einer digtalen Darstellung, pro Wert (Zeigerstellung) einen
> Datensatz?
Du guckst dir http://de.wikipedia.org/wiki/Bresenham-Algorithmus an, 
setzt beide Varianten (Linie und Kreis) auf deinem System um, und 
verknubbelst dann quasi deine interne Software-Uhr mit der Ansteuerung 
der Uhr-Anzeige.

Um zu ermitteln, wo beispielsweise die jeweiligen Stundenmarkierungen 
liegen müssen, würde ich das einfach in Paint oder einem anderen 
Programm, welches großem Zoom ein Raster anzeigen kann, zeichnen und die 
Koordinaten entsprechend in eine Koordinatentabelle eintragen, aus der 
du jeweils die benötigte Anfangs- und Endpunkte holst.
Drumrum natürlich der Kreis. Die Zeigerpositionen würde ich ebenfalls in 
einer Tabelle führen. Die Zeiger werden dann von der Mitte der Uhr bis 
zu den entsprechenden Koordinaten gezeichnet.
Um eine Zeigerposition zu aktualisieren, ist es wichtig, beide Zeiger zu 
löschen, dann die neuen Endpunkte holen und neu zu zeichnen.

Ralf

Autor: Suchender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis, werd mich mal einlesen.

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du benötigst nur einen Viertelkreis und kannst dann spiegeln.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Du benötigst nur einen Viertelkreis und kannst dann spiegeln.

Bei simpel gestrickten Anzeigen mag das ja noch angehen. Wenn es etwas 
anspruchsvoller aussehen soll würde ich die Skala als Grafik laden und 
nur den Zeiger zeichnen. Geht auch wesentlich schneller.

MfG Spess

Autor: A. B. (funky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Zeiger per Bresenham und die Kreisskala entweder auch per Bresenham 
zeichnen oder als Bitmap definieren.

Darauf achten, das man nichts von der Kreisskala mit dem Zeiger 
übermalt. Dann muss man die Skala nicht jedesmal neu zeichnen.

Außerdem ist es nützlich sich mit dem Bogenmaß auseinanderzusetzen. Legt 
man die vorberechneten Anfangs/Endkoordinaten des Zeigers dann noch in 
ein Array dann ist das ganze auch recht flott.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Darauf achten, das man nichts von der Kreisskala mit dem Zeiger
>übermalt. Dann muss man die Skala nicht jedesmal neu zeichnen.

Wenn du für den Zeiger einen XOR-Mode benutzt reicht das erneute 
Zeichnen um den Zeiger zu löschen und den Hintergrund wieder 
herzustellen.

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.