Forum: Mikrocontroller und Digitale Elektronik LCD Problem am Atmega16


von Daniel (Gast)


Lesenswert?

Hallo,

ich weiß nicht mehr weiter. Ich versuche jetzt schon seit mehreren Tagen 
ein LC-Display an einem Atmega16 zu betrieben, aber ich schaffe es nicht 
das Display zu initialisieren. Der Grund, warum ich nicht mehr weiter 
weiß ist der, das dass Display an einem Atmega8 einwandfrei 
funktioniert. Auch in der Simulations-Software „Proteus 7“ Funktioniert 
das Display, egal ob Atmega8 oder 16. Um das Display anzusteuern, 
verwende ich die lcd-rutines aus dem AVR-GCC-Tutorial.
Das Display ist das LCD162 von Reichelt im dem Controller KS0070B.

Gruß Daniel

von Stefan S. (energizer)


Lesenswert?

JTAG Fuse deaktiviert ?

von Steven (. (ovular) Benutzerseite


Lesenswert?

Was es sein könnte:
Wenn du das Display am PortC betreibst, musst du den JTAG ausschalten.
Macht man mit den Fuses.

Falls es das nicht war:
Verwendest du das gleiche Programm, wie für deinen Mega8, und auch die 
gleiche Pinbelegung zum Display? Stimmt die Taktfrequenz des Mega16?

MfG Steven

von Daniel (Gast)


Lesenswert?

Gibt es zusätzlich für C einen Befehl, womit man den JTAG ausschalten 
kann? In PonyProg habe ich sie deaktiviert. Bisher funktioniert es 
immernoch nicht.

von Daniel (Gast)


Lesenswert?

Habe jetzt noch mal die Schaltung aus dem Tutorial aufgebaut. Selbe 
Pin-Belegung, selber Quelltext und mit der internen Frequenz des 
Atmega16 von 1MHz. Die Frequenz in der Header-Datei habe ich auf 1Mhz 
angepasst. Das LCD ist jetzt auch wieder an "Port D" angeschlossen, wie 
im Tutorial.
Pin-Belegung und Programm sind mit dem vom Atmega8 identisch.
Bisher tut sich immernoch nichts.

von Jean P. (fubu1000)


Lesenswert?

Hallo,
zeig mal deinen Code.

Gruß

von Steven (. (ovular) Benutzerseite


Lesenswert?

Hast du "#define F_CPU 8000000" auf 1000000 umgestellt?

MfG Steven

von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Danke das du dir den Quelltext mal ansehen möchtest. Hier ist er. Nur 
noch mal zur Verständmisfrage. Wie sollten denn die Fuse-Bits bei 
PonyProg aussehen? Habe bei...

JTAGEN; BOOTSZ1; BOOTSZ0; SUT0; CKSEL0

einen Häkchen, alle anderen sind frei

von Bernd B. (grisu)


Lesenswert?

Daniel wrote:
> Danke das du dir den Quelltext mal ansehen möchtest. Hier ist er.
1
#define LCD_PORT      PORTD
2
#define LCD_DDR       DDRD
3
#define LCD_RS        PD4
4
#define LCD_EN        PD5
5
// DB4 bis DB7 des LCD sind mit PC0 bis PC3 des AVR verbunden

Sehe ich das richtig? Die Daten-Pins 4 bis 7 des LCD sind an PC0 bis 
PC3, RS und EN sind aber an Port D? Dann musst du noch ein bischen was 
anpassen.

Lösung siehe z.B. hier:

Beitrag "Re: LCD nicht nur für einen Port in C"

von holger (Gast)


Lesenswert?

>JTAGEN; BOOTSZ1; BOOTSZ0; SUT0; CKSEL0
>einen Häkchen, alle anderen sind frei

War das bei Pony nicht so:
Da wo ein Häkchen ist wird eine Null gebrannt.
Dann wäre JTAG aktiviert.

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.