Forum: Mikrocontroller und Digitale Elektronik Suche PC-Programm das ein Grafik-LCD emuliert


von Uwe B. (derexponent)


Lesenswert?

Hallo,

kennt jemand ein PC-Programm das z.B. ein 240x320 Graphic-Display 
emuliert ? (oder irgend ein anderes Format)

ich habe vor so einen Emulator zu schreiben, mit dem man z.B. per UART
kommunizieren kann

für kleine Anwendungen (oder für Debug-Zwecke) bräuchte man dann kein
Display auf der Platine vorsehen, sondern könnte den PC wie ein Display 
behandeln.

Falls es sowas schon gibt, wäre ein gleiches Projekt natürlich sinnlos

Gruss Uwe

von Karl H. (kbuchegg)


Lesenswert?

Uwe B. schrieb:

> ich habe vor so einen Emulator zu schreiben, mit dem man z.B. per UART
> kommunizieren kann
>
> für kleine Anwendungen (oder für Debug-Zwecke) bräuchte man dann kein
> Display auf der Platine vorsehen, sondern könnte den PC wie ein Display
> behandeln.

Ich seh den Sinn noch nicht.
Denn ein normales HD44780 LCD wird komplett anders angesteuert als das 
mit einer UART möglich ist. D.h. was du in den AVR brennen wirst, hat 
mit dem, wie ein derartiges LCD angesteuert wird, nicht das geringste zu 
tun. Wenn du da aber AVR seitig sowieso eine Speziallösung brauchst UND 
du PC-seitig ebenfalls eine Speziallösung einsetzt, dann kannst du aber 
auch gleich das benutzen, was dir ein normales Terminal mit zb einer 
VT100 Emulation von Haus aus bietet. Das schenkt sich nichts und ist 
schon fast fertig verfügbar. Denn ob deine AVR-seitige lcd_clear 
Funktion jetzt das Byte zusammenbaut, welches es normalerweise an ein 
LCD geben würde, oder ob sie gleich die entsprechende VT100-Sequenz zum 
Bildschirm löschen an die UART gibt, macht keinen großen UNterschied.

Eine LCD Simulation macht IMHO nur dann Sinn, wenn du etwas hast, was du 
tatsächlich 1:1 anstelle eines regulären LCD an deinen AVR anschliessen 
kannst. D.h. alle Datenleitungen, R/W, R/S, E und welches dann (in 
begrenztem Umfang) zb auch das komplette Timing eines LCD simuliert. 
Sobald du aber über die UART gehst, kannst du das sowieso nicht mehr.
Ist das Ziel aber, eine Ausgabefläche auf dem PC vorzusehen, weil man 
sich ein tatsächliches LCD einsparen will und es nur darum geht Ausgaben 
machen zu können, dann ist ein Terminal wesentlich besser geeignet, als 
ein simuliertes LCD. Zum einen ist die nutzbare Ausgabefläche um einiges 
größer, zum anderen ist die Ansteuerung einfacher.

: Bearbeitet durch User
von Uwe B. (derexponent)


Angehängte Dateien:

Lesenswert?

Hi Karl Heinz,

ich möchte nicht ein bestimmtes Display und dessen Funktionen und 
Anschlüsse simulieren (da hab ich mich wohl falsch ausgedrückt)

sondern ich möchte eine Möglichkeit haben eine "Text/Grafik-Ausgabe" zu 
realisieren ohne das ich ein Display im eigentlichen Sinne an den 
Controller anschließen muss.

du hast es aber schon richtig gesagt, es wäre ein "erweitertes" 
VT100-Terminal-Programm (wenn man so will)

im Bild mal ein Beispiel wie die Ausgabe aussehen würde :

Nach dem start war das "Display" leer und über zwei Befehle
wurden zwei Listboxen erstellt (an X,Y-Position mit Breite+Höhe)

hier die zwei Befehle dafür : (#010,nr,x,y,w,h)
1
"#010,0,010,020,100,0A0*"
2
"#010,1,010,0F0,100,0A0*"

danach wurden Texte an die zwei Listboxen gesendet : (#011,nr,text)
1
"#011,0,List-Box Nr0*"
2
"#011,0,Test*"
3
"#011,1,Andere List-Box*"


aber nach der Resonanz hier zu urteilen werd ich das Projekt wohl
wieder in die Schublade packen :-)

Gruss

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Schau dir mal das hier an

Beitrag "Projekt: Virtuelle Instrumente an serielle Schnittstelle"

Ich denke, das könnte ungefähr in die Richtung gehen, die dir 
vorschwebt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Uwe B. schrieb:
> du hast es aber schon richtig gesagt, es wäre ein "erweitertes"
> VT100-Terminal-Programm (wenn man so will)

Dann kannst Du ein graphikfähiges Terminalprogramm verwenden.

Ein Klassiker für graphikfähige Terminals war das Tektronix 4014; auf 
unixoiden Betriebssystemen ist ein Emulator dafür in Form von xterm 
standardmäßig vorhanden. Mit http://x.cygwin.com/ gibt es das auch als 
Bestandteil des Cygwin-Schichtkuchens.

von Uwe B. (derexponent)


Lesenswert?

Karl Heinz schrieb:
> Schau dir mal das hier an

Danke...aber genau daher hatte ich ja die Idee !!

von Uwe B. (derexponent)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Dann kannst Du ein graphikfähiges Terminalprogramm verwenden.

ok, werd mal suchen ob es das auch für Windows gibt

von Karl H. (kbuchegg)


Lesenswert?

Uwe B. schrieb:
> Karl Heinz schrieb:
>> Schau dir mal das hier an
>
> Danke...aber genau daher hatte ich ja die Idee !!

Dann sehe ich allerdings erst recht noch nicht den Sinn hinter deiner 
Idee. Mit den Mitteln des genannten Threads kann man sich doch wunderbar 
in 0 Komma Nix eine grafische Oberfläche zusammenklicken und vom AVR aus 
ansteuern.

von Achim_42 (Gast)


Lesenswert?

Hallo Uwe,
ich habe vor einigen selbst mal so eines geschrieben. In der Firma. 
Speziell für ein Projekt, also nichts universelles.
Es war so, dass am Montag die Anfrage kam, ob wir bis Freitag für eine 
Präsentation ein Steuergerät incl. LC-Display (128x64) entwickeln 
könnten.
Am Montag Nachmittag war der LC-Simulator fertig. Dienstag und Mittwoch 
konnte ich die Software entwickeln, am Donnerstag war dann die 
Leiterplatte bestückt, das Display war eines mit RS232.
Software drauf gespielt. Auf Anhieb funktioniert.

Am Freitag die Präsentation, der Kunde unseres Auftraggebers hat den 
Mund nicht zu bekommen.

Kenne aber leider kein universelles Tool.

von W.S. (Gast)


Lesenswert?

Karl Heinz schrieb:
> D.h. was du in den AVR brennen wirst,

Er hat doch garnix von AVR geschrieben! Warum fängst DU damit an?

Ansonsten geb ich dir Recht: Was der Uwe sich da gedacht hat, ist 
einfach nur unausgegoren. Man kann kein 240x320 Grafikdisplay auf dem PC 
derart emulieren, daß ein per Serieller angeschlossener µC darauf was 
malen kann, wie er es auf einem physisch an seinen Ports befindlichen 
Display tun könnte.

Für Debugzwecke ist die Serielle jedoch allemal gut geeignet, man 
braucht dazu bloß sein Lieblings-Terminalprogramm auf dem PC.

Vielleicht meint der Uwe auch was ganz anderes, nämlich das Entwerfen 
von grafischen Menüs usw. am PC. Dazu müßte man das im µC verwendete GDI 
im Entwurfsprogramm auf dem PC nachbilden und dessen Ausgaben in einem 
passenden Grafik-Fenster darstellen. Aber das läuft letztlich auf das 
Selberschreiben eines Emulators hinaus.

W.S.

von WilliP (Gast)


Lesenswert?

Hi,
ohne das ich mir jetzt alles genau durchgelesen habe, vielleicht ist das 
ein Ansatz:

GLCD-Simulator
http://www.geocities.com/dinceraydin/djgfxlcdsim/djgfxlcdsim.html

Gruß
WilliP

von Uwe B. (derexponent)


Lesenswert?

W.S. schrieb:

>Man kann kein 240x320 Grafikdisplay auf dem PC
> derart emulieren, daß ein per Serieller angeschlossener µC darauf was
> malen kann, wie er es auf einem physisch an seinen Ports befindlichen
> Display tun könnte.

warum sollte das nicht machbar sein ?

man muss nur zwei Funktionen "umbiegen"

1. MoveCursor(x,y)
2. SetPixel(Farbe)


diese zwei Funktionen gibt es im uc-Programm (in irgendeiner Form) 
immer,
wenn ein Grafik-Display an einen uC angeschlossen ist

in welcher physikalischen Art diese Befehle dann an das Display 
weitergegeben werden (Bitgeklappere) ist doch für die Anzeige unrelevant

ich kann die zwei Befehle in zwei Ascii-Kommandos umwandeln,
und per UART an den PC senden (wenn es sein muss in Klarschrift)

und dann den PC den Cursor auf dem Bildschirm setzen
und einen Pixel zeichnen lassen

am Ende wird das gleiche "Bild" auf dem PC zu sehen sein,
wie der User es auf einem "normalen" LCD haben möchte
(von der Geschwindigkeit mal abgesehen)

aber sowas war gar nicht meine Intension :-)

Ihr "denkt" zu sehr an das nachahmen eines pyhsikalischen Displays
aber da es davon 1000 verschiedene gibt und alle unterschiedlich
angesteuert werden kann man die nicht "universell" simulieren

ich wollte einfach eine Möglichkeit schaffen
das ein User der nur einen Mikrocontroller und eine UART hat,
den PC als "Grafik-Display" nutzen kann

aber wie schon geklärt, funktioniert das heute schon

das Thema kann also geschlossen werden

Gruss Uwe

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.