coCo
01.11.2006, 21:19
Hi,
ich hab folgendes Problem. Ich hab an PD7 einen Summer angeschlossen und möchte nun am Port C (Pin1-7, Pin0 ist noch nicht belegt) ein 16x2 Zeichen LCD im 4 Bit Modus betreiben. Ich habe nun folgenden Code (nur der wichtige Ausschnitt):
#include "lcd.c"
/* weiterer code ...... */
DDRD |= (1 << PD7);
lcd_init(LCD_DISP_ON);
while(1) {
lcd_clrscr();
lcd_puts("hallo");
summer(1,30);
/* weiterer code ..... */
}
Summer ist eine von mir erstellte Funktion und bringt den Summer zum summen.
Wenn ich nun das Programm übertrage, passiert erst einmal nichts. Schließe ich jedoch an PC7 GND an, fängt der Summer an zu summen wie er soll. Lasse ich alle LCD Funktionen weg, sprich:
while(1) {
summer(1,30);
/* weiterer code ..... */
}
funktioniert alles wie es soll.
Was noch komisch ist, dass genau das selbe Programm auf dem Steckbrett ohne Probleme lief.
Ich kann mir dieses "Phänomen" nicht erklären. Ach ja, und es liegt nich an PC7, wenn ich in der lcd.h für LCD_DATA3_PIN einfach 0 statt 7 eintrage, dann funktioniert der Summer auch nur wenn ich GND an PC0 anschließe. Ebenso kann ich den LCD_PORT beliebig ändern, es kommt immer dasselbe Phänomen vor... :(
Ich würde deshalb annehmen, dass das Problem irgendwo bei LCD_DATA3_PIN und der lcd.h zu suchen ist, aber ich kann mir nicht erklären wie das Programm vor ner Woche auf dem Steckbrett funktionierte und jetzt nimmer. :-k
Ich komm echt nimmer weiter, würde mich über Hilfe freuen :)
MfG
ps: hab das mal ins GCC Forum gepostet, weil ich mal davon ausgehe, dass an der Software etwas net stimmt...[shadow=red:752d97e97b][/shadow:752d97e97b]
ich hab folgendes Problem. Ich hab an PD7 einen Summer angeschlossen und möchte nun am Port C (Pin1-7, Pin0 ist noch nicht belegt) ein 16x2 Zeichen LCD im 4 Bit Modus betreiben. Ich habe nun folgenden Code (nur der wichtige Ausschnitt):
#include "lcd.c"
/* weiterer code ...... */
DDRD |= (1 << PD7);
lcd_init(LCD_DISP_ON);
while(1) {
lcd_clrscr();
lcd_puts("hallo");
summer(1,30);
/* weiterer code ..... */
}
Summer ist eine von mir erstellte Funktion und bringt den Summer zum summen.
Wenn ich nun das Programm übertrage, passiert erst einmal nichts. Schließe ich jedoch an PC7 GND an, fängt der Summer an zu summen wie er soll. Lasse ich alle LCD Funktionen weg, sprich:
while(1) {
summer(1,30);
/* weiterer code ..... */
}
funktioniert alles wie es soll.
Was noch komisch ist, dass genau das selbe Programm auf dem Steckbrett ohne Probleme lief.
Ich kann mir dieses "Phänomen" nicht erklären. Ach ja, und es liegt nich an PC7, wenn ich in der lcd.h für LCD_DATA3_PIN einfach 0 statt 7 eintrage, dann funktioniert der Summer auch nur wenn ich GND an PC0 anschließe. Ebenso kann ich den LCD_PORT beliebig ändern, es kommt immer dasselbe Phänomen vor... :(
Ich würde deshalb annehmen, dass das Problem irgendwo bei LCD_DATA3_PIN und der lcd.h zu suchen ist, aber ich kann mir nicht erklären wie das Programm vor ner Woche auf dem Steckbrett funktionierte und jetzt nimmer. :-k
Ich komm echt nimmer weiter, würde mich über Hilfe freuen :)
MfG
ps: hab das mal ins GCC Forum gepostet, weil ich mal davon ausgehe, dass an der Software etwas net stimmt...[shadow=red:752d97e97b][/shadow:752d97e97b]