Forum: Mikrocontroller und Digitale Elektronik LCD DOGM162W-A CDGRAM


von Klaus D. (rodo38)


Angehängte Dateien:

Lesenswert?

Geschätztes Forum,

dies ist eine Bitte um Hilfe. Thema: LCD DOGM162W-A CGRAM Schreiben und 
Lesen.

Mittels eines LCD DOGM162W-A, eines ATMEGA8A und einiger weiterer 
Peripherie habe ich mir ein kleines DVM gebastelt. (Ich weiß natürlich, 
dass auch das billigste Gerät von CONRAD viel mehr kann, es dient mir 
zum Erlernen von Assembler).

Das Gerät stelle ich im Forum Projekte & Code unter "DVM mit DOGM162W-A, 
ATMEGA8A, ASM" vor (mit vollständigem Programm). Dort ist die Bitte um 
Hilfe unerwünscht.

Das Gerät soll in LCD_line2 so etwas wie eine Quasi-Analog-Anzeige aus 0 
bis 80 "Balken" darstellen (16 Zeichen zu je 5 Spalten). Und das mit 
Hilfe von 6 der 8 CGRAM-Plätzen.

Bei einem Versuchsaufbau mit dem LCD CP594V-0 ist das auch problemlos 
gelungen, mit dem DOGM162W-A jedoch nicht, und das, obwohl ich das 
Datenblatt des Controllers ST7036 schon praktisch auswendig kann. 
Irgendwo hakt es offenbar bei mir.

Das Programm im Directory "DOGM162W-A CGRAM Assembler Programm" ist von 
allem befreit, was nicht unbedingt zur Problemlösung nötig ist.

Vom Schaltplan "1. Entire Diagram.pdf" würde das Programm nur das LCD, 
den Mikroprozessor und die +5V Spannungsversorgung benötigen, um zu 
funktionieren.

Damit ein freundlicher Mensch, der mir helfen will, möglichst wenig 
Arbeit hat, befindet sich das Programm-Listing in der Datei <ASM 
Programm.pdf>.

Soll-Funktionen des Programms:
Beschreiben von 6 der 8 CGRAMs mit den Inhalten entsprechend der Datei
"5. LCD_line2.pdf".
Lesen der Inhalte von CGRAM #0 bis CGRAM #5 und deren Anzeige in 
LCD_line2.
Anzeigen der Ziffern '0' bis '3' in LCD_line2 (Funktionskontrolle).
Jedes Zeichen wird ca. 2 Sekunden lang angezeigt.
Nach der Anzeige der Ziffer '3' beginnt es wieder mit CGRAM #0.

Alles, was mir zu dem Problem eingefallen ist, habe ich ohne Erfolg 
ausprobiert. Irgendwelche Vermutungen möchte ich deshalb hier nicht 
vorbringen.

Das Internet habe ich stundenlang durchsucht, ebenso ohne Erfolg. Es ist 
aber möglich, dass Lösungen bei SPI-Verdrahtung und/oder in der 
Programmiersprache C zu finden sind. Mit beiden Themen möchte ich mich 
im Moment aber (noch) nicht beschäftigen.

Für Hilfe zur Lösung meines Problems wäre ich mehr als dankbar.




Beste Grüße

Klaus

von :-) (Gast)


Lesenswert?

Mein Bargraph-Rezept entspricht zwar nicht exakt deinem Problem, aber 
vielleicht hilft es trotzdem:
Beitrag "Kontinuierlicher Bargraph auf x-Zeichen LCDs"

(eigener Thread, damit es bei der Suche nach Bargraph leichter gefunden 
wird)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Klaus D. schrieb:
> Damit ein freundlicher Mensch, der mir helfen will, möglichst wenig
> Arbeit hat, befindet sich das Programm-Listing in der Datei <ASM
> Programm.pdf>.
Warum hast du nicht einfach die .ASM Datei hier angehängt? Und dann 
einfach noch die Bildformate beachten. Es muss nicht alles mit 
Gewalt in ein PDF gezwängt werden...

> Soll-Funktionen des Programms:
Und was tut das Programm stattdessen? Was ist der Fehler?

von Klaus D. (rodo38)


Lesenswert?

Hallo geschätztes Forum,

hier erst noch mal der Link zum eigentlichen Projekt:

Beitrag "DVM mit DOGM162W-A, ATMEGA8A, AVRASM"

------------------------------------------------------------------------
Hallo :-),

herzlichen Dank für Deine Antwort. Die Lücke nach je 5 Bars ist 
tatsächlich hässlich. Das ist ja auch deutlich in dem Bild DSC22492.pdf 
zu sehen.

Leider hilft mir Deine Antwort nicht beim eigentlichen Problem: Beim LCD 
mit dem Controller HD44780 habe ich kein Problem, Daten in die Zellen 
des CGRAM zu schreiben und von dort zu lesen. Beim LCD mit dem 
Controller ST7036 schaffe ich das aber nicht. Die Beiträge in Deinem 
Link habe ich nach einer möglichen Problemlösung durchsucht, leider auch 
ohne Erfolg.

Erstaunt war ich bei manchen dieser Beiträge darüber, wie unsachlich sie 
doch sein können. Ich glaube, man hat keine Wahl, als so etwas einfach 
zu ignorieren.

Nochmals vielen Dank für die sehr sinnvolle Problemlösung zu den Lücken 
im Bargraph. So werde ich es sicher auch machen sobald ich es kann. 
Übrigens: Den Ausdruck "Bargraph" habe ich soeben von Dir gelernt.

------------------------------------------------------------------------
Hallo Lothar Müller,

besten Dank auch für Deinen Beitrag.

1. ASM Datei:

Die ASM-Datei befindet sich innerhalb der Datei DVM_CGRAM_zip, so wie 
alle anderen Dateien, welche zu diesem Studio 4 Projekt gehören.

Damit sich ein hilfsbereiter Mensch nicht damit abplagen muß, sie in 
z.B. Studio 4 zu öffnen, habe ich sie zusätzlich mittels Notepad++ zur 
Datei
"ASM Programm.pdf"
gemacht. Die lässt sich sehr angenehm lesen.

2. Bildformate:

Lt. den drei Zeilen unter "Weitere Dateien anhängen" soll JPG nur für
Fotos und Scans verwendet werden, PNG und GIF für Zeichnungen und 
Screenshots.

Ich habe soeben das Sony-Camera-Foto DSC22637.JPG in ACDSee 3 Pro 
geöffnet und dann zu folgenden Dateien konvertiert:

DSC22637.JPG   2.992 KB (Originalgröße)
DSC22637.PNG   5.616 KB
DSC22637.GIF   2.834 KB
DSC22637.PDF      85 KB

Die (erlaubte) JPG-Datei ist somit 35,2 mal so groß wie die (nicht 
explizit verbotene) PDF-Datei. Aus meiner Sicht glaubte ich, etwas 
Sinnvolles getan zu haben. Wenn dem nicht so ist, dann wäre ich für 
entsprechende Hinweise wirklich sehr dankbar.

Mit den besten Grüßen

Klaus

von Klaus D. (rodo38)


Lesenswert?

Hallo Lothar Miller,

zunächst bitte ich Dich höflich um Verzeihung. Ich habe Dienen Namen 
falsch geschrieben im vorherigen Beitrag.

Das was jetzt kommt, gehört nicht zum Thema:

Als Moderator kannst Du mir hoffentlich einen Rat geben, wie ich die 
heute nicht mehr gültige E-Mail Adresse los werde, mit der ich noch bei 
www.mikrocontroller.net angemeldet bin und wie ich sie abändern kann in 
die gültige.

Besten Dank für Deine freundliche Hilfe.

Grüße

Klaus

von Klaus D. (rodo38)


Lesenswert?

Hallo Lothar Miller,

das Folgende gehört wieder zu Thema.

Ich hatte Deine letzte Frage noch nicht beantwortet:

>> Soll-Funktionen des Programms:
>  Und was tut das Programm stattdessen? Was ist der Fehler?

Das Bild "5. LCD_line2.pdf" zeigt, mit welchen Zeichen 6 der 8 
CDRAM-Plätze beschrieben werden sollen.

Nach dem Beschreiben sollen sie nacheinander in LCD_line2 angezeigt 
werden und zwar im Feld ganz rechts zwischen den ' '.

Danach werden noch die Zeichen CHR(048)='0' bis CHR(051)='3' angezeigt, 
was aber nur zur Kontrolle der Funktion des Programms dient.

Jedes Zeichen wird ca. 2 Sekunden lang angezeigt.

Bei Verwendung eines LCD mit dem Controller HD44780 stehen die 8 
CGRAM-Zeichen in den Plätzen CHR(000) bis CHR(007). Bei einem LCD mit 
dem Controller ST7036 ist das evtl. anders oder ich muß amders schreiben 
oder anders lesen. Genau das gelingt mir nicht.

Das Bild DSC22636.pdf zeigt als Beispiel, dass das Feld zwischen den ' ' 
leer bleibt bei Anzeige des CHR(003). Das CGRAM-Field #3 ist scheinbar 
leer.

Bei CHR(050) = '2' funktioniert die Sache aber korrekt wie das Bild 
DSC22367.pdf beispielhaft zeigt. Das Programm funktioniert somit 
zumindest grundsätzlich.

Meine Folgerungen daraus betr. Controller ST7036:

1.
Die CDRAM-Zeichen stehen evtl. woanders als beim HD44780

2.
Meine Schreib-Routine ab Label CGRam: ist evtl. falsch. Beim HD44780 
funktioniert sie aber.

3.
Meine Lese-Routine ab Label Loop1: ist evtl. falsch. Beim HD44780 
funktioniert sie aber.

4.
Ich mache einen Fehler von dem ich noch keine Vorstellung habe.

Falls Du eine Lösung für mein Problem kennst wäre ich für die 
Information wirklich sehr dankbar. Genau so dankbar bin ich aber, wenn 
Du keine kennst, jedoch Zeit und Mühe in die Lektüre meiner Probleme 
steckst.

Beste Grüße

Klaus

von Frank (Gast)


Lesenswert?

Klaus D. schrieb:
> Bei Verwendung eines LCD mit dem Controller HD44780 stehen die 8
> CGRAM-Zeichen in den Plätzen CHR(000) bis CHR(007). Bei einem LCD mit
> dem Controller ST7036 ist das evtl. anders oder ich muß amders schreiben
> oder anders lesen. Genau das gelingt mir nicht.
Das allgemeine Schreiben funktioniert ja, also muß man sich auf die 
Unterschiede konzentrieren und das Datenblatt intensiv lesen.

Zu ST7036 habe ich das hier gefunden:
http://www.lcd-module.de/eng/pdf/zubehoer/st7036.pdf

Dort steht auf Seite 23, wie und wann CGRAM bzw CGROM verwendet wird.
Wie ist bei Deinem Display OPR1 und OPR2 beschaltet?

Außerdem würde ich mal prüfen ob die Befehle von Seite 26 in Deinem Code 
richtig umgesetzt werden.

von Klaus D. (rodo38)


Angehängte Dateien:

Lesenswert?

Hallo Frank,

vielen Dank für Deinen Hinweis. Er ist absolut berechtigt.

Beim Controller ST7036 handelt es sich um ein "Chip On Glass" IC. Viele 
der Anschlüsse und Funktionen sind, wenn es erst mal verbaut ist, dem 
Anwender des LCD nicht zugänglich. Sie werden vom Hersteller des LCD 
festgelegt.

Bei OPR1 und OPR2 handelt es sich um derlei Anschlüsse. Ich kann sie 
also nicht direkt z.B. mit einem DVM messen. Ich kann sie auch per 
Programm nicht ändern.

Mein LCD ist das DOGM162W-A. Dessen Datenblatt "dog-m.pdf" hänge ich 
diesem Beitrag an.

Auf Seite 5 ist der Zeichensatz dargestellt. Wenn man diesen mit dem 
Datenblatt des ST7036, Seite 23 vergleicht, dann kommt man zu dem 
Schluß, das OPR1=1 und OPR2=0 sein muß.

In beiden Fällen scheint klar zu sein, dass das CGRAM die Plätze 
CHR(000) bis CHR(007) belegt, genau wie beim Controller HD44780.

Die zu diesem Thema gehörenden Instructions, Seite 26 des ST7036 
Datenblatts, sind auch dieselben wie die vom HD44780.

Beide Datenblätter kann ich fast auswendig herbeten, so oft habe ich sie 
gelesen. Ich vermute, dass ich trotzdem irgendwas übersehe, einfach weil 
ich den "Wald vor lauter Bäumen" nicht mehr sehe.

Allerbesten Dank für Deine Mühe.

viele Grüße und schönes Wochenende

Klaus

von Frank (Gast)


Lesenswert?

Klaus D. schrieb:
> Auf Seite 5 ist der Zeichensatz dargestellt. Wenn man diesen mit dem
> Datenblatt des ST7036, Seite 23 vergleicht, dann kommt man zu dem
> Schluß, das OPR1=1 und OPR2=0 sein muß.
Gut. Ich würde trotzdem nochmal prüfen, ob und wie die Zeichen chr(007) 
und chr(008) belegt sind. Damit sollte sich die Belegung von OPR1/2 
genau ermitteln lassen.

Frank

von Klaus R. (klaus2)


Lesenswert?

Heidewitzzka...krasser breadbordaufbau, Reschpekt.

Wieso eigentlich zwingend ASM? Das ist ja nicht mehr sooo en vogue?

Klaus.

von Crazy Harry (crazy_h)


Lesenswert?

Ich kann mich erinnern als vor Jahren die DOGM-LCDs auf den Markt kamen, 
daß die Compiler-Routinen für userdefinierte Zeichen nicht mehr 
funktionierten und hab mir selber was geschrieben. Leider nicht in 
Assembler. Soweit ich weiß verstellten die Original-Compilerroutinen den 
Kontrast des Displays.
1
Procedure DOGM_CharSet(CNum,B0,B1,B2,B3,B4,B5,B6,B7:Byte);
2
  Begin
3
    LCDCtrl_M(LCD_m1,$40 or (CNum*8));   // CGRAM-Adress, ICON=Zeichen 0..7
4
    LCDOut_M(Char(B0));                  // Bitmuster schreiben Adresse
5
    LCDOut_M(Char(B1));                  // Bitmuster schreiben Adresse+1
6
    LCDOut_M(Char(B2));                  // Bitmuster schreiben Adresse+2
7
    LCDOut_M(Char(B3));                  // Bitmuster schreiben Adresse+3
8
    LCDOut_M(Char(B4));                  // Bitmuster schreiben Adresse+4
9
    LCDOut_M(Char(B5));                  // Bitmuster schreiben Adresse+5
10
    LCDOut_M(Char(B6));                  // Bitmuster schreiben Adresse+6
11
    LCDOut_M(Char(B7));                  // Bitmuster schreiben Adresse+7
12
  End DOGM_CharSet;

von Crazy Harry (crazy_h)


Lesenswert?

achja .... LCDCTRL = Befehl und LCDOut = Daten. Das "Char" weil der 
Befehl ein Char erwartet.

von Klaus D. (rodo38)


Lesenswert?

Hallo Frank
Hallo Klaus R.
Hallo Crazy H.

zunächst meinen Dank für Eure Beiträge und die dafür aufgewendete Zeit 
und Mühe.

------------------------------------------------------------------------
@Frank

Dein Vorschlag ist absolut sinnvoll.

Als ich angefangen habe, nach dem Grund für mein Problem zu suchen, habe 
ich eine kleine Schleife geschrieben. Diese hat mir jeweils 1 Sekunde 
lang die Zeichen der Adressen 0 bis 255, also CHR(000) bis CHR(255), 
angezeigt.

Wenn ich Deinen Vorschlag nicht falsch interpretiere, dann war das genau 
das, was ich tun soll.

Ergebnis: ST7036 Datenblatt, Seiten 22 und 23: Es werden genau dieselben 
Zeichen angezeigt wie auf den beiden Bättern in der Version OPR1=1 und 
OPR2=0. Dies entspricht auch der Seite 5 des Datenblattes zum LCD 
DOGM162W-A. Die Zeichen an den Adressen 0 bis 7 sind leer, beim Zeichen 
8 erscheint der kleine Pfeil nach links usw.

------------------------------------------------------------------------
@Klaus R.

vielen Dank für das Lob.

Der Aufbau auf einem Steckbrett hat aber deutliche Nachteile, zumindest 
dann, wenn man wie ich hier mit analogen Signalen geringer Voltzahl 
arbeitet. Die Überganswiderstände ändern sich ständig und man bekommt 
beim nächsten Versuch, das DVM zu kalibrieren, wieder völlig andere 
Werte.

Bitte sieh Dir doch meinen Beitrag unter

Beitrag "DVM mit DOGM162W-A, ATMEGA8A, AVRASM"

an. Dort gibt es ein Bild von der (vorläufig) letzten Ausführung, 
gelötet auf 2 kleinen Lochrasterplatinen. Hier bleiben die 
Kalibrierwerte dauerhaft stabil (wenn man kalte Lötstellen vermeidet).

Nun zu Assembler: Ich bin Rentner (76). Schon während meines 
Berufslebens hatte ich mir vorgenommen, mich damit zu beschäftigen. Es 
ist eins meiner Hobbys und macht mir einfach Spass. Das es recht 
ineffektiv ist, nehme ich deshalb sehr gerne in Kauf.

------------------------------------------------------------------------
@Crazy H.

die Definition der LCD-Subroutinen hat mir auch etwas Mühe bereitet, 
insbesondere LCD_init: und LCD_busy:. Das habe ich aber noch selbst 
hinbekommen. Die Werte für den Kontrast stehen hier in der LCD_init:.

Dein Hinweis auf "Compiler-Routinen" deutet darauf hin, dass sie 
zunächst mal nicht selbst geschrieben waren, sondern, im Fall dass sie 
fehlerhaft waren, von Dir entsprechend verbessert wurden.

Dein Beispiel könnte sehr leicht die Lösung für mein Problem sein.

Nun weiß ich nicht einmal, um welche Sprache es sich dabei handelt. Mit 
großer Wahrscheinlichkeit ist es eine Hochsprache.

Die ';' am Ende jeder Zeile deutet auf Basic hin. Dieses Zeichen 
verhindert in Basic, dass im Anschluss an die Ausgabe ein LF und ein CR 
gesendet werden.

Die '//' vor Beginn der Kommentare deuten auf C hin.

Weiterhelfen könnte mir Deine Prozedur, wenn ich wüsste, welche Inhalte 
die Variablen CNum und LCD_m1 haben. Bei CNum sieht es so aus, als würde 
es in der Prozedur schrittweise hochgezählt. Die Variablen B0 bis B7 
enthalten vermutlich die ins CGRAM zu schreibenden Bitmuster.

Falls Du sie noch hast: Könntest Du mir vielleicht zusätzlich noch die 
Teile des Programms schicken, in welchen die Variablen definiert werden, 
oder das ganze Programm, wenn das einfacher ist?

Falls es nicht öffentlich werden soll: Bitte schicke es an meine E-Mail 
Adresse rodo38@gmx.net.

------------------------------------------------------------------------

Nochmals an alle, die mir helfen wollen, meinen herzlichen Dank.

Klaus

von Frank (Gast)


Lesenswert?

Klaus D. schrieb:
> Ergebnis: ST7036 Datenblatt, Seiten 22 und 23: Es werden genau dieselben
> Zeichen angezeigt wie auf den beiden Bättern in der Version OPR1=1 und
> OPR2=0. Dies entspricht auch der Seite 5 des Datenblattes zum LCD
> DOGM162W-A. Die Zeichen an den Adressen 0 bis 7 sind leer, beim Zeichen
> 8 erscheint der kleine Pfeil nach links usw.
Gut. Mir sind gerade diese ominösen 'instruction tables' aufgefallen.

Offenbar kann man mit dem Befehl function set, siehe Datenblatt S.31, 
den Befehlssatz umschalten.
function set selber ist 0b001XXXXX (0x20)
Bit 4 = data length, müßte hier 0 sein
Bit 3 = line number, müßte hier 1 sein
Bit 2 = double hight, müßte hier 0 sein
Bit 1/0 = instruction set, müßte hier 00 sein
ergibt 0b00101000 (0x28)

Bei Dir steht aber nur:
1
;-----------------------------------------------------------------------------------------
2
; Function Set 05: 4-Bit Mode, 2 Lines, 5x8 Dots, Extension Instructions
3
        ldi     R16     ,   0b00101001
4
        rcall   LCD_cmd
Damit wird 'Instruction table 1' aktiviert (siehe Datenblatt S.28). Das 
ist wohl auch nötig, um den Kontrast einzustellen. Allerdings gibt es 
dann keinen Set CGRAM Befehl. Im Initialisierungsbeispiel von EA 
(Seite 7) wird die 'Instruction Table' wieder zurückgestellt.

Soviel zum Thema kompatibel ;-)


Wenn Du die folgenden Zeilen (an der richtigen Stelle) einfügst, sollte 
es klappen:
1
;-----------------------------------------------------------------------------------------
2
; Function Set 09a: 4-Bit Mode, 2 Lines, 5x8 Dots, Normal Instructions
3
        ldi     R16     ,   0b00101000
4
        rcall   LCD_cmd

Frank

von Klaus D. (rodo38)


Lesenswert?

Hallo Frank,

das war es !!!!!!!!!!!!!!!

Der Ausdruck "Wald vor lauter Bäumen nicht sehen" trifft voll auf mich 
zu.

Peinlich !
Peinlich !

Kann ich mich irgendwie revanchieren?

Meine E-Mail Adresse: rodo38@gmx.net.

Meinen allerbesten Dank !

Grüße und schönes Wochenende

Klaus

von Frank (Gast)


Lesenswert?

Klaus D. schrieb:
> Kann ich mich irgendwie revanchieren?
Laß gut sein :-)
Ich finde es super, daß Du Dir das überhaupt antust (auf Dein Alter 
bezogen).
Als ich mit den AVRs angefangen habe, habe ich mir auch erstmal ein 
kleines Assemblerprojekt gesucht (ich glaube es war ein Lauflicht).

Ich bin aber schnell auf C umgestiegen. Dank dem guten Tutorial auf 
dieser Webseite, hat der Einstieg auch schnell geklappt.

Viel Spaß noch,
bis zum nächsten 'Fehler' ;-)

Frank

von spess53 (Gast)


Lesenswert?

Hi

Übrigens kannst du die Adressen in der Tabelle 'Symbole' weglassen.

Ein

ldi     r16,0x40
rcall  LCD_cmd

an Anfang von 'CGRam' reicht. Die Adressen werden automatisch weiter 
gezählt.

MfG Spess

von Crazy Harry (crazy_h)


Lesenswert?

@Klaus: freut mich, daß es geklappt hat. Der Vollständigkeit halber: 
CNum ist das User-definierte Zeichen (0..7) und B0-7 das Bitmuster.

Die Routinen sind/waren keineswegs fehlerhaft, nur nicht für diesen 
Controller-Typ. Das allseits beliebte "44780-kompatibel" ist meiner 
Meinung nach voll fürn Ar... !

.... achja: Pascal ;o)

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Klaus D. schrieb:
> kannst Du mir hoffentlich einen Rat geben, wie ich die heute nicht mehr
> gültige E-Mail Adresse los werde, mit der ich noch bei
> www.mikrocontroller.net angemeldet bin und wie ich sie abändern kann in
> die gültige.
Wenn du angemeldet bist, solltest du oben eine Zeile sehen, in der auch 
das Wort "Einstellungen" auftaucht. Dort draufklicken und du kannst die 
email Adresse aktualisieren.

Zu den Dateiformaten: wenn du hier eine .ASM Datei anhängst, dann gibt 
es Syntaxhighlighting kostenlos dazu...

von Safety (Gast)


Lesenswert?

Klaus R. schrieb:
> Heidewitzzka...krasser breadbordaufbau, Reschpekt

Jau, das nenn ich Oldschool.
Aber das Netzteil macht mir Angst, echt Angst. Liegt da Netzspannung 
ungeschützt an?

von Crazy Harry (crazy_h)


Lesenswert?

vergessen: das LCD_m1 bedeutet nur, daß das LCD via PCA9555/I2C 
angeschlossen ist.

von Klaus D. (rodo38)


Lesenswert?

Hallo Frank,

die LCD_init habe ich anhand der Seiten 41 und 42 im ST7036 Datenblatt 
geschrieben. Die notwendige Umschaltung von Instruction Table 1 auf 
Instruction Table 0 fehlt dort und zwar sowohl im Block-Diagramm auf 
Seite 41 wie auch im Code Example auf Blatt 42.

Natürlich habe ich jetzt verstanden, dass und warum sie nötig ist. Ich 
bin aber jetzt doch der Meinung, dass ich nicht der Einzige bin, der 
sich schämen muss. Wenn das Beispiel im Datenblatt schon nicht 
vollständig ist, dann hätte dessen Schreiber das zumindest verbal 
vermerken sollen.

Beruflich hatte ich es mit den verschiedenen Hewlett Packard Languages 
zu tun für die Rechner HP9815 und HP9825, dann mit HP Basic für HP9835, 
HP9845 und dann für die HP 9000-300 Serie. Von Letzterem besitze ich 
noch ein funktionsfähiges Exemplar. Bei dem wird die gewünschte Sprache 
mittels Floppys installiert während sie beim 9835 und 9845 quasi 
hardwaremäßig, d.h. beim Einschalten schon da war.

Als dann die PCs ab 386 mit Coprozessor ausreichend flott wurden, um die 
Materialprüfmaschinen zu bedienen, gab es erst einige DOS-Basic 
Versionen und dann VB1 bis VB5 bei meinem Arbeitgeber. Privat habe ich 
mir dann noch VB6 angesehen. Die erste DOT.NET Version wollte ich mir 
dann im Urlaub in Thailand angucken, bin dabei aber schon bei der 
Installation auf meinem Notebook gescheitert. Da wären entweder CDs oder 
eine Internetverbindung oder beides nötig gewesen, was ich natürlich 
nicht hatte. VB.NET ist seitdem für mich gestorben. Ich bin traurig, 
dass eine Weiterentwicklung auf VB7 und Folgende nicht stattgefunden 
hat.

Mit C möchte ich mich nicht mehr befassen. Ich mag die Listings nicht in 
denen oft z.B. eine einsame Klammer alleine mitten in einer Zeile steht. 
Außerdem steht C bzw. C++ in dem Ruf, für Anfänger nicht so leicht 
erlernbar zu sein.

------------------------------------------------------------------------
Hallo spess53,

vielen Dank für die Info. Du fügst meiner To Do Liste ein weiteres 
Objekt  hinzu. Das ist aber gut so, ich will ja schließlich was lernen.

------------------------------------------------------------------------
Hallo Crazy H.

ja, darüber freue ich mich auch wirklich sehr und ich möchte Frank auch 
nochmals meinen Dank aussprechen. Von ihm kam zuletzt die endgültige 
Lösung.

Mein Dank gilt natürlich auch Dir und den anderen Persönlichkeiten, die 
Zeit und Mühe nicht gescheut haben, um mir bei meinem Problem zu helfen.

Mit Pascal hatte ich noch nie etwas zu tun, deshalb bin ich anhand 
Deines Codes auch nicht darauf gekommen.

Ich bin auch erstaunt, dass man mit Pascal Programme für dem µC 
schreiben kann. Ich glaube, dass man in Studio 4 z.B. keine Pascal 
Version öffnen kann.

Das LCD DOGM162W-A kann leider nicht über I2C betrieben werden, nur im 4 
bzw 8 Bit Modus oder mit SPI, womit ich mich aber noch befassen muß. 
Gehört zu meiner To Do Liste.

------------------------------------------------------------------------
Hallo Lothar Miller,

das habe ich schon früher probiert mit dem Ergebnis "Es existert bereits 
ein Account für diese E-Mail-Adresse", s. auch die hier angehängte Datei 
"Benutzereinstellungen.pdf". Zwei Accounts mit der gleichen 
E-Mail-Adresse können aber doch gar nicht existieren, weil, soweit ich 
zu wissen glaube, jede E-Mail-Adresse weltweit nur einmal existiert. 
Evtl. könnt ihr beide Accounts löschen und ich melde mich erneut an. 
Dieser Weg scheint mir der sicherste zu sein.

Du hattest mir zuletzt vorgeworfen, dass ich alles quasi gewaltsam zur 
PDF mache. Das Öffenen irgendeiner Datei in irgendeinem Programm und 
dann das Drucken dieser Datei mit dem PDF Printer dauert 2 oder 3 
Sekunden. Die hier angehängte Dateit hätte ich scannen müssen, um sie 
zunächst zur PDF zu machen. Diese hätte ich dann mit ACDSee zur PNG oder 
zur GIF konvertieren müssen, wobei sie ein Vielfaches der Größe 
angenommen hätte.

Frage: Ist es akzeptabel, wenn ich weiterhin die Dateien, bei denen es 
sinnvoll zu sein scheint, im Format PDF sende?

Falls ich vermute, dass z.B. ein Ausschnitt eines Bildes sehr stark 
vergrößert werden soll, dann würde ich es selbstverstänlich als JPG 
schicken.

Das mit der .ASM Datei wußte ich nicht. Selbstverständlich werde ich den 
wertvollen Hinweis in Zukunft beachten. Besten Dank dafür.

------------------------------------------------------------------------
Hallo Safety,

schließlich bin ich ja sebst (leider) auch nicht mehr der Jüngste, fühle 
mich aber trotzdem sauwohl. Hoffentlich bleibt das so noch lange.

Wenn Du das Netzteil meinst, mit dem ich die +/- 15 VDC erzeuge: Keine 
Angst, die 230 VAC am Trafo sowie die Kippschalter Anschlüsse liegen 
"unten", auf der Verdrahtungsseite der Platine. Dort sind sie mittels 
Vergussmasse isoliert, so dass man sie nicht berühren kann.

Anders sieht es mit dem DVM aus: Wenn man es z.B. so an eine Steckdose 
anschließen würde, dass GND der Elektronik am Leiter L hängt, dann wäre 
dass überaus gefährlich. Zum Kalibrieren habe ich deshalb einen 
Trenntrafo benutzt.

Vor langer Zeit habe ich sämtliche Steckdosen im Haus so verdrahtet, das 
der Leiter N links und der Leiter L rechts liegt. Es gibt auch keine 
Steckdose, welche z.B. mittels eines Kreuzschalters ein-, aus- oder 
umgeschaltet wird. Eine reelle Gefahr besteht aber bei Benutzung einer 
Steckdosenleiste. Da bleibt einem nur der Prüf-Schraubenzieher.

von Klaus D. (rodo38)


Angehängte Dateien:

Lesenswert?

Hallo,

hier kommt die zuvor angekündigte Datei "Benutzereinstellungen.pdf".

Grüße

Klaus

von Crazy Harry (crazy_h)


Lesenswert?

Hi Klaus,

jedes (Text-)Display kann mit dem erwähnten PCA9555 über I2C betrieben 
werden. Bei grafischen LCDs bin ich jedoch dazu über gegangen dem 
Display einen eingenen Controller (Mega32 oder 644) zu spendieren, der 
sich nur darum kümmert + HG-Beleuchtung und an die 50 Bitmaps vorhält. 
Der Controller bzw. das Display stellt auch hier einen I2C-Slave dar. 
Das erforderliche Protokoll hab ich mir selber ausgedacht. Ein 
zusätzlicher Vorteil: ich kann mit dem kleinsten uC ein grafisches LCD 
ansteuern.

Gruss
Harry

von Klaus D. (rodo38)


Lesenswert?

Hallo Crazy H.,

es ist sehr sinnvoll, dass Du mich nochmal an das PCA9555 erinnerst. Du 
hast offenbar gemerkt, dass ich keine Ahnung hatte, was Du mir sagen 
wolltest.

Da es sich um ein 24 poliges SMD Modul handelt, ist es sicher etwas 
fummelig, es mit feinen Drähtchen mit einem 24 pol. DIL IC Sockel zu 
verbinden, so dass es sich dann leicht verdrahten läßt.

Mit den beiden ICs AD 780 und L6920DB in meinem DVM habe ich das auch so 
gemacht, aber die haben nur je 8 Beinchen. Das L6920DB ist so winzig, 
das selbst dessen Verheiratung mit einem IC Sockel nicht ganz einfach 
war. Es ging dann aber doch ganz gut als ich die Beinchen 1, 4, 5 und 8 
nach oben gebogen hatte.

Das Datenblatt des PCA9555 habe ich soeben durchgelesen. Es gibt darin 
auch Hinweise auf die Funktion von I2C welche sich mit dem decken, was 
ich darüber z.B. in der ELV gelesen habe. Bevor ich mich damit befasse, 
vergeht sicher noch einige Zeit, aber dann werde ich mich ganz bestimmt 
wieder an das PCA9555 erinnern. Vielen Dank dafür, dass Du nicht locker 
gelassen hast. Die Info wird mir sicherlich nochmal sehr nützlich sein.

Viele Grüße

Klaus

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.