Forum: Mikrocontroller und Digitale Elektronik LCD will NICHT (ATmega163)


von Schatta (Gast)


Lesenswert?

hi,

ich sitze gerade inner schule (ja auch in den ferien ;) und versuche
verzweifelt endlich mal das display ans laufen zu kriegen! zugegeben
ich bin ziemlich neu auf dem gebiet und hab noch nicht so recht die
ahnung...

in der schule benutzen wir CodeVision AVR, das hat ja schon vorlagen
für lcd, von daher dachte ich es sei kein problem ein solches
anzusteuern.

mein programm sieht derzeit so aus:

// LCD module initialization
lcd_init(20);

while (1)
      {
      // Place your code here
      lcd_clear();
      lcd_gotoxy(14,0);
      lcd_putsf("Test");
      delay_ms(500);
      lcd_gotoxy(0,1);
      lcd_putsf("Das ist ein Test");
      delay_ms(500);


das ganze zeugs hängt an port b

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x18
#endasm
#include <lcd.h>

ein software fehler schliesse ich eigentlich aus da sich alles
wunderbar kompilieren lässt!
auch die verbindung zum display ist wohl kaum schuld da ich sie schon
hundert mal kontrolliert und/oder erneuert hab.

gibts da sonst noch nen kniff oder hat jemand ne ahnung was daran
shculd sein könnte?

das display zeigt auch keine schönen vollen kästchen an, sondern immer
nur wilde punkte mal links mal rechts mal überall....

nach dem reset liegt am ausgang B folgendes an 11110101..

  [LCD]   [ATmega163]
   1 GND- 9  GND
   2 +5V- 10 VCC
   3 VLC- LCD HEADER Vo
   4 RS - 1  PB0
   5 RD - 2  PB1
   6 EN - 3  PB2
  11 D4 - 5  PB4
  12 D5 - 6  PB5
  13 D6 - 7  PB6
  14 D7 - 8  PB7

is das display tot?

würde mich über jede hilfe freuen, und sorry dass es etwas länger wurde
:(

thomas

von Markus Kempf (Gast)


Lesenswert?

Vermutlich liegt der Fehler darin das die LCD Routine von CVAVR nicht
perfekt sind. Diese ist nicht kompatibel mit allen LCD's und allen
AVR's. Vor allem bei den MEGA AVR's kam es bei mir immer wieder zu
Problemen. Mein 4*20 LCD läuft z.b. nicht am Mega16, funktioniert aber
perfeckt am 90LS8535. dafür funktioniert aber mein 2*16 LCD an beiden
mit dem selben Programm.
Wie gesagt, das liegt an einer Inkompartiplität vermutlich beim timing.
Die LCD Routine hält die vorgegeben Spezifikationen nicht ganz korrekt
ein. Das hat der Programmierer schon selber gemerkt und versucht es in
der neusten Version zu fixen. Siehe hier:
http://www.hpinfotech.ro/html/cvavr_history.htm
Hat bei mir jedoch nichts gebracht. Alles was dir da übrig bleibt ist
entweder die Routine selbst zu schreiben/anzupassen oder die richtige
Display-Controller Kombination zu finden.
Gruß!
Markus

von Schatta (Gast)


Lesenswert?

Hi,

erstmal danke für die infos!

hab jetzt noch einen s8515 gefunden, aber mit dem wills auch nich
gehen! ein 1x16 display hab ich auch noch gefunden....das zeigt beim
mega16 o und pfeile an, aber nur die ersten 8 zeichen...

nu hab ich och noch nen mega32, aber wo steckt man den ins stk500?
steht nichts dazu inner anleitung..

ich werd wohl einfach nen neues display kaufen ;) blau

mfG,
thomas

von Schatta (Gast)


Lesenswert?

Hi nochma,

wollt nur noch shcnell sagen dass ich den mega163 und das 1x16 display
in einklang gebracht hab! hat doch was genutzt dass ich dem mega mit
dem "beinchenausreissen" gedroht hab!

thomas

von Sven Müller (Gast)


Lesenswert?

..aber wie hast du es denn nu gemacht?

von Ben Zijlstra (Gast)


Lesenswert?

Download
http://members.home.nl/bzijlstra/software/examples/uip_avr_163.zip

There you will find a LCD-routine for a ATmega163 in AVR-GCC.

In http://members.home.nl/bzijlstra/hardware/pcb/avr_whacker_sch.zip
you will find the schematics to connect the LCD to the Atmega163.

Have fun
Ben Zijlstra

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.