Hallo Leute,
dies ist hier mein aller erster Beitrag in diesem Forum, ich bitte um
Nachsicht :-)
Seit 2 Tagen versuche ich mein GLCD mit KS0108 erfolglos vom PortC auf
PortB "umzuschalten", natürlich mit Anpassung des Codes.
Am PortC funktioniert das Display einwandfrei!
Ich habe überprüft, ob alle PINs des Atmega8L am PortB funktionieren.
Mit dem "Hello World" programm jeden einzelnen PIN am Port B EINZELN aus
und eingeschaltet, die LED belegt, dass die Anschlüsse technisch OK
sind.
das einzige was ich geändert habe ist, das umlöten der GLCD Pins:
von PortC0 -> PortB0
von PortC1 -> PortB1
von PortC2 -> PortB2
von PortC3 -> PortB3
von PortC4 -> PortB4
von PortC5 -> PortB5
von PortC6 -> PortB6
natürlich auch die Verbindungen abermals geprüft und durchgemessen,
weder Kurzschlüsse, noch sonst irgendwelche Fehler.
Im Anhang die .h Datei für die Konfiguration der Ports.
Hier habe ich nur
// Ports
#define LCD_CMD_PORT PORTC // Command Output Register
#define LCD_CMD_DIR DDRC // Data Direction Register for Command
Port
PORTC -> PORTB
und DDRC -> DDRB geändert.
In der .C Datei sind keinerlei Angaben über die verwendeten Ports oder
Pins enthalten! nur die Ausgabe des Displayinhalts...
Als Board wird das myAVR Board mit USB ISP Programmer verwendet.
Natürlich habe ich auch im Schaltplan geprüft, ob die Ports des PortB
anderweitig belegt sind und konnte NICHTS finden.
Der PortD wird unverändert für die leitungen D0 bis D7 am GLCD
verwendet, ich möchte lediglich die CMD Ports des GLCD von PortC auf
PortB legen, damit ich für weitere Tests die ADC Möglichkeiten des PortC
frei bekomme.
Würde mich freuen, wenn mir jemand helfen kann.
PS: Ich beschäftige mich mit Microcontorllern noch nicht einmal eine
Woche und hbe ausser HTML Programmiereung auch wenig Berührung mit
Programmierung gehabt.
Dafür finde ich, dass meine Fortschritte sich sehen lassen können.
Bisher ist es mir gelungen, je nach Tastendruck verschiedene Texte (fix)
auf dem GLCD anzuzeigen! Im Prinzip ein auf GLCDs angepasstes "Hello
World" was mit LEDs geht.
Dank der verfügbaren Librarys für das KS0108 von Fabian Maximilian
Thiele (Anhang)
Als gelernter Radio- & Fersehtechniker habe ich zumindest einige
tiefgreifende Kenntnisse im Bereich Digitaltechnik und Elektronik.
Hallo Dennis,
ja, der ISP Programmer war noch dran, da ich das ganze Board über USB
des ISP versorge.
Hmm, sollte ich vielleicht mal ohne probieren (mit externer
Stromversorgung).
Scheinbar habe ich im Schaltplan nicht gut aufgepasst, die Ports sind
wirklich mit dem ISP verbuden...
Danke nochmals für den Hinweis! das lässt sich schnell und einfach
testen!
Gruß Taner
generell ja,
ich denke, das es an einem Konfigurationsproblem liegt.
Das du an irgendeinem PINC eine alternative funktion hast.
könntest du vllt doch mal den ganzen source veröffentlichen ??
Hallo,
angeschlossen habe ich ihn so wie in diesem Schaltplan:
http://www.scienceprog.com/wp-content/uploads/2007i/Glcd/GLCD_pins.png
Es sind an Port C nur die CMD Pins des LCD angeschlossen! Die benötigen
nur 5 Pins! PC0 bis PC4
Habe das Analog einfach von PB0 bis PB4 belegt, rest freigelassen...
Port D blieb unverändert am PortD (die Datenleitungen des LCD)
Gruß Taner
hast du eine möglickeit das ganze zu debuggen ( AVR Studio ), ich
vermute fast, das es aufgrund einer alternativen Funktion eines PINs zu
tun hat. Vllt ein Timeroverflow oder sowas.
was wird den in der SC.h definiert ??
SC.h ist nur eine Schriftart für das Grafik LCD.
Ich arbeite mit Mac OS X und AVR GCC (AVRMacPac aktuellste Version)
Wo könnte denn so ein PIN noch eine alternative Funktion definiert
bekommen?
im Makefile? Über die FUSE Bits?
Gruß Taner
ja, zb wird der intene oszillator über di fusebit aktiviert bzw.
deaktiviert
wo befindt sich dein Proz den gerad ??
vllt auf einem Eval Board.
Du hat geschrieben, das du es mit sämtlichen internen Kkonfigurationen
getestet hast.
vllt verwendest du ihn ja gar net den internen und somit sind deine Pins
noch als Xtal konfiguriert
Hallo Dennis,
im ersten Posting steht das verwendete Board. Es handelt sich um das
myAVR USB.
Es wird jedoch definitiv der interne Oszillator verwendet, die Fuse Bits
habe ich auch schon ausgelesen und habe alle internen Taktraten
durchprobiert.
Von 1 MHz bis 8 MHz...
Gruß Taner