Dsm0822a von Pollin an AVR unter Bascom

Jul 21, 2004 5 Replies

Hallo Group :o) Ich habe mir oben besagtes LCD Display zugelegt und würde es gerne mit einem AVR 3213 zum laufen bringen.Jedoch scheitere ich irgendwo und weiß nicht wo.Vielleicht hat ja schon jemand mit diesem LCD gearbeitet und sieht anhand des Quellcodes wo der Bock sitzt. Wäre für jede Hilfe dankbar.Programmiersprache Bascom. Code:



$regfile = "2313def.dat" 'AT90S2313 $crystal = 4000000 Ddrd = &B0011000 Const Dsm0822a_lcd = &H70 'Defines the address of the DSM-0822A


Const Pcf8574_write = &H40 Const Pcf8574_read = &H41 Config I2cdelay = 10 Config Scl = Portb.3 'Configure i2c SCL Config Sda = Portb.2 I2cinit Dim A As Integer Dim I As Integer



I2cstop



Do Portd.4 = 1 'Rote LED (Pin PD3) an Portd.3 = 0 Waitms 500



For I = 0 To 255 I2cstart 'generate start I2cwbyte Pcf8574_write 'send slave address I2cwbyte I 'send a value I2cstop Waitms 100 'generate stop Next



I2cstart I2cwbyte Dsm0822a_lcd 'send slave address // Display anprechen I2cwbyte 128 + 64 + 32 + 0 '1110_0000 224 DEVICE SELECT Subdevice 0 select I2cwbyte 128 + 64 + 8 '1100_1000 200 MODE SET Display an, LCD BIAS 1/3 MUX 1:4 I2cwbyte 0 '0000_0000 0 LOAD DATA POINTER auf 0 For A = 1 To 16 I2cwbyte 255 Waitms 100 Next I2cstop



Portd.4 = 0 Portd.3 = 1 'Rote LED aus Waitms 500 Loop End


Vielen Dank Troelli


"Carsten Tröller" wrote in news:cdlkrk$ni2$07$ snipped-for-privacy@news.t-online.com:

Ja habe ich. Allerdings verwende ich C. Diese Seite hat mir sehr geholfen:

formatting link

Vielleicht kannst du ja so deinen Fehler finden.

Paul

Ich hätte auch noch ein paar Beispielprogramme für QuickBasic anzubieten, vielleicht sind die für den OP leichter zu verstehen:

formatting link
(vorsicht, langsamer Server!).

Gruß, Arne

Hey Arne ... :o) Das nenne ich Zufall.Dein Proggi diente mir als Hauptmuster weil in Basic.Ich habe mir das Beispiel gegriffen, wo alle Segmente mit einem Schlag angezeigt werden. Deswegen finde ich es echt merkwürdig das mein Proggi nicht läuft.Was ist also anders ? Ich versuche mal meine Vorgehensweise aufzuzeigen damit Du das mit dem synconisieren kannst , was Du weißt. I2cstop 'Grundstellung I2cstart ' I2c Startkondition I2cwbyte Dsm0822a_lcd 'send slave address // Display anprechen Festferdrahtet hex 70 oder dez 112 I2cwbyte 128 + 64 + 32 + 0 '1110_0000 dez224 DEVICE SELECT Subdevice 0 select I2cwbyte 128 + 64 + 8 '1100_1000 dez200 MODE SET ,Display an, LCD BIAS 1/3 MUX 1:4 I2cwbyte 0 '0000_0000 0 LOAD DATA POINTER auf 0 For A = 1 To 16 'Schleife um jedes Segment zum leuchten zu bringen I2cwbyte 255 Waitms 100 Next I2cstop

Das sieht doch genauso aus wie Deins, zumindestens ist doch das Verfahren gleich, oder? Würde ich eine 0 in die Schleife schicken hätte ich doch ein Display clear.Aber das habe ich auch ohne code ... :o( ... das display leuchtet nicht mal aus Gnade.Jetzt könnte man hingehen und sagen, der I2C Bus lahmt, aber is nich.Am gleichen Bus läuft auch ein I/O Expander ohne Probleme.Spannung (am Displayanschluss) ist auch da (5V).Ich kann Dir doch wohl vertrauen, das jenes Display das auch vertragen kann ... Ich habe auch schon mehrere probiert aber kein Display zeigt was an. Ne Idee ? Mfg Troelli

PS: Du solltest das Adressbyte nicht Auswahlbyte nennen das verwirrt.

Hey Paul habe mir die Seite angesehen und jenes gefunden.

char i; bstart(); schreib(112); // feste adresse schreib(0b.1110.0000); // Device select schreib(0b.1100.1000); // Mode set(enabled) for (i=0;i "Carsten Tröller" wrote in

"Carsten Tröller" wrote in news:cdnncf$dm2$01$ snipped-for-privacy@news.t-online.com:

Moin,

Also die for Schleife kann man auch weglassen. Die ist nur dazu da um das Display zu leeren, falls beim Start irgendetwas drauf sein sollte.

Das i++ heisst i=i+1. i wird also um 1 erhöht.

Ich hab deinen Code mal überflogen und finde den eigentlich ganz in Ordnung so (bin allerdings nicht wirklich ein Basic Crack...).

Paul

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required