Forum: Mikrocontroller und Digitale Elektronik ATMega8 / BASCOM / Int. Osc. factory setting / LCD


von eerhard (Gast)


Lesenswert?

Hallo,

Habe mir eine Platine gebaut mit nen ATmega8, aber ohne externe XTal.
Ich moechte naehmlich gerne mal die interne Oscilator nutzen unter
BASCOM.
Im Buch von Roland Walter gibt es eine beschribung wie man eine externe
XTal anschliesen muss. Aber,. wie gesagt, ich moechte gerne die interne
Oszillator nutzen.
Wie ich es verstanden habe, ist eine fabriksfrische ATMega8 geliefert
im 1 MHz int. Osz. Zustand. Also, wenn ich mir nicht irre, brauche ich
keine Einstellungen zu aendern im TwinAVR (CKSEL0..3 oder CKOPT) und
koente einfach das folgende einbrennen :

================================
$regfile "m8def.dat"
$crystal = 1000000

CONFIG Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 ,
Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
CONFIG Lcd = 16 * 2

Lcd_on ALIAS Portc.7 (Gibt die 2mA Power fur die LCD)

DIM I as byte

SET Lcd_on 'SCHALTET LCD AN, ALSO GIBT 2 mA / 5V
DO
    FOR I=0 to 200
        CLS
        UPPERLINE
        LCD "Counting : " & I
       WAIT 1
   NEXT
LOOP
================================

Aber, es funzt nicht. Ich sehe dass der LCD Spannung hat, aber es gibt
keine Text auf die LCD, nur das die Oberlinie schwarz ist. Und es
blinkt ein bisschen.

Jemand der angeben kann was ich falsch mache ?

von Karl H. (kbuchegg)


Lesenswert?

Das mit dem LCD einschalten ueber einen Port Pin
ist keine gute Idee. So ein LCD muss initialisiert werden,
ehe es genutzt werden kann. Wenn nun aber die Initialisierung
durchlaeuft, waehrend das Ding noch keine Spannung hat, ....

Haeng das LCD ganz normal an Deine Stromversorgung.

von Chris Nöding (Gast)


Lesenswert?

Karl Heinz Buchegger hat recht. BASCOM initialisiert das LCD über CONFIG
Lcdpin und CONFIG Lcd, während das LCD selbst spannungslos ist. Das geht
schief. Also VCC des Displays wirklich an +5VDC hängen. Zudem sollte
nach der Initialisierung (CONFIG Lcdpin und CONFIG Lcd) noch ein
kleines Momentchen gewartet werden, bevor Text ausgegeben wird. Meist
genügt ein kleines "waitms 20" bis "waitms 100", sodass das Display
voll wach ist.

Das Blinken des LCDs ist schon mal ein gutes Zeichen, dass Daten
irgendwie irgendwo hinkommen (vorrausgesetzt es blinkt regelmäßig jede
Sekunde -> siehe deine Source bei "wait 1")

ciao,
Christian

von papa_of_t (Gast)


Lesenswert?

Ich hatte mal das gleiche Problem. Bei mir lag es daran, daß ich
vergessen hatte, den Kontrast-Pin zu versorgen. Also versorge das
Display zunächst wie Karl Heinz schreibt z.B. über eine externe
Spannungsversorgung, und dann ein Poti drüber (Mittelabgriff auf
Kontrast-Pin vom LCD).

von eerhard (Gast)


Lesenswert?

Dank Leute !

Ich werde bald versuchen die LCD dan sofort am +5V legen.
Ich habe eine Trafo der 9V / 166 mA liefert. Der Atmel ist intern
gesichert fur Strohm, also es wurde keine Probleme damit geben. Aber
die LCD braucht nur 3mA und ich weiss nicht ob es gesichert ist. Ich
hatte verstanden das eine Atmel-2313 10mA / 5V steuern kan am Pin.
Deshalb hatte ich gedacht : "Schoen, dan werde ich es uber eine
Wiederstand ansteuern, dan gibt is sicher keine Schaden".

Naja,. so sieht man das ich immer sehr vorsichtig bin.(Nichts alles
sofort kaput machen). OK,. ich werde mal anschauen was passiert wenn
ich es sofort an +5V lege. Ich werde mich hier wieder melden)

P.S. O ja,. und wie immer : meine Entschueldigungen fuer meine
schlechte Deutschsprache.

von bla (Gast)


Lesenswert?

hast du deinen avr an 9V gelegt oder wie muss ich das verstehen??
Wenn du dein LCD an 5V legst zieht da automatisch seine 3mA auch wenn
dein Netzteil 30A liefern kann. Mit 9 V wirst du es aber schnell ins
Grab befördern.

von Eerhard (Gast)


Lesenswert?

Karl Heinz : vielen Dank !

Es stimmt jetzt. Nie gewust, aber Heute dan doch gelernt. Ich brauche
mir gar keine Sorgen zu machen fur die LCD.

OK,. ich kan jetzt ein bischen mehr erzahlen : Ich baue mir eine
UV-Timer. Ich aergere mich oft wenn ich mir eine Platine baue. Es
passiert sehr oft das ich mehrere Sachen zugleich mache und dan vergess
ich oft die Zeit beim Beleuchtung. Wenn ich No-name Platine beleuchte,
na ja,. 8 oder 13 Minuten gab noch keine grosse unterschied  im
Qualitaet (ich drucke meine PCB auf normale weise A4 Papier)
Aber,. mit Platinen vom Bungard geht es nicht so.
Weiterhin habe ich keine Uhren im Haus der die Sekunden genau angibt.
Nur Uhren der Stunden und Minuten angebt. Also,. ich kan nur starten
wen eine neue Minute zu sehen is. Fur Endzeit gilt etwas aehnliches.
Also,. ich bins satt und wollte mir eine Timer einbauen.

Ich hab mir eine doppelseitige Platine gemacht (10x4 cm), und habe
darauf eine MOC3023, 2x16 LCD und eine Platine mit 4 SMD-Drucktaster
gebaut.
Stromversorgung gibt es auch darauf : 220V~ nach 9V~/166 mA Trafo (ich
dachte : 120 mA fuer LCD mit backlight und 40 bis 50 mA fur ATMega8)
Die 9V/166 mA geht uber nen B40C1000, und dan eine 78M05 und naturhlich
mit einige Elkos.

Aber,. wie vorher schon angegeben, ich habe jetzt eine LCD
ohneHintergrundbeleuchtung (der nur 2mA braucht, statt 120 mA).

Weiterhin habe ich mir das ganze schoen programmiert, und in die ATMega
gebrennt. Leider arbeitet alles noch nicht tadelos. Aber,. es ist
naturlich sehr wichtig das ich am mindestens sehen kann was passiert,
deshalb moechte ich die LCD an die arbeit haben.
Wenn man wirklich neugierig ist, werde ich mal nen Foto publizieren.

OK,. vielen Dank Leute ! Und jetzt wurde ich versuchen die Drucktaster
aus zu lesen.

P.S. Wenn ich dieses Projekt fertig habe, wollte ich mir noch eine
LC-meter bauen. Es gibt verschiede PCB's auf internet, mit hex-Daten
dabei, aber ich moechte es mir gerne selber bauen, unter BASCOM.

P.S. Wenn ich die Int. Osc. auf 8 MHz setze, sollte ich es wirklich
Kalibrieren mussen ?
1) Wie soll das gehen
2) Gibt es wirklich ein so grosse Abweichung ohne Kalibrierung ?

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.