www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Folien-Tastatur Anschluss


Autor: TheFallen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich bin gerade dabei mir ein Contol-Pannel für mein 19" Server-Rack zu
bauen. Ich habe vor 4 Displays und zu jedem dieser Displays jeweis eine
3x3Folientastatur(y/x) und 2 Statusleuchten für den Alarmzustand des
über das Display Überwachte system.
Gesteuert wird das ganze von einer selbstgeschriebenen software die die
sytemdaten der anderen server über das netztwerk erhält.
Die LCD Displays habe ich bereits erfolgreich über den LPT Port
angeschlossen. Sie verwenden jeweils 2 SED 1520 controler.
Mein Prolem ist nun, ich möchte eine platine bauen, um die 4 3x3
Tastenfelder und die 8 Kontroll-LED's über meine RS232 Schnittstelle
(9-pol subD) an den pc anzuschließen.
Habe leider Absolut keine ahnung wie is das anstellen soll. Habe schon
bei google nach bauanleitungen für soetwas gesucht, aber nichts
gefunden.
Kann mir jemand helfen und sagen, was ich dazu benötige?
Wenn jmd Hilfe mit C/C++ programmierung benötigt bin ich gern dazu
bereit zu helfen ...

Vielen Dank!!

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lies dir das tutorial hier auf der seite durch, da ist fast alles drin
was du brauchst: led's ansteuern, schalter auslesen und die serielle
schnittstelle. als 'anfang' sollte das ganz gut sein

Autor: TheFallen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, Danke ... So weit hatte ich net nach unten gelesen, um die links zu
finden ... danke!!

Mein Fehler, sorry ...

Wenn jmd wissen möche, wie man unter windows in C++ einen MFC Device
Context in einen für LCD-Grafik-Displays verständlichen ASCII Code
umwandelt, einfach ne Mail an TheFallen@f2s.com schreiben ...

Un danke nochma ...

Greetz.

Autor: Benjamin Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

Würd mich mal interessieren, wie du das Problem hdc to lcd gelöst
hast...

Ich hab das damals mittels eines HBITMAP gemacht und das dann per
GetDIBits in ein grosses Array gelesen

Oder geht das vielleicht noch eleganter?

Gruss
Benjamin

Autor: TheFallen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
klar ...
Der DC muss folgede vorraussetzungen haben:
a) er muss kopatibel zu einem ClientDC erzeugt werden und dann muss als
erstes ein Monochom Bitmap in der Größe des LCDs geladen werden.
so:

CDC local;
CClientDC dc(this);
CBitmap temp;

temp.CreateBitmap(122,32,1,1,NULL);
local.CreateCompatibleDC( &dc );
local.SelectObject( &temp );

Nun kann local alles aufnehmen, was gezeichnet werden soll. Sogar ganze
bitmaps können per BitBlt oder StechBlt hineintransferiert werden.

Die Converter-funktion wird dann so aufgerufen:

bmp2fb(&local);

Die eigentliche funktion ist in der datei im anhang. Sie ist hier für
ein display mit 122x32 pixeln mit SED1520 controllern ausgelegt. immer
8 Pixel übereinander ergeben ein Byte.
Also besteht mein framebuffer aus 4 Zeilen a 122 bytes. Also:

char framebuf[488];

Der Framebuffer wird dann einfach der reihe nach an den Controller
gesendet, da dieser nach einem Byte automatisch den Pointer in die
nächste Spalte setzt. Die neue Page wird auch automatisch angewählt.
Bitta darauf achten, dass ein display evtl von 2 oder mehr controllern
gesteuert wird, und der Framebuffer entspechend beim senden aufgeteilt
werden muss.

Ich hoffe, das ist was du brauchst.


Gruß, TF

Autor: Benjamin Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo


Ich würde nur mit der GetPixel Funktion aufpassen, die ist nämlich
erbärmlich langsam
Meine erste Variante arbeitete auch mit der Funktion, doch der Rechner
war richtig ausgelastet und das Display (640x480) brauchte knapp 2
Sekunden bis es aufgebaut war

Dann hab ich das ganze auf GetDIBBits umgebaut und ab dann war nur noch
die serielle Schnittstelle der limitierende Faktor

ich muss mal suchen, vielleicht hab ich den Source davon noch


Benjamin

Autor: TheFallen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, danke für den Tipp.
Für mich spielte das keine rolle, da ich nur diese 122x32 displays
betreiben will. der server der das ganze trägt is lediglich mein
datenserver mit einem alten Athlon XP 1700+ 1024MB DDR ...
Da werden sich für mich keine probleme auftuen ...

Was jedoch wesentlich schneller ist, wenn nur eine textausgabe benötigt
wird, ist mit fontmaps zu arbeiten ... da kann der Framebuffer dann mit
Bitwise Operatoren erstellt werden ..


//TF

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.