Hallo alle zusammen,
ich habe ein Problem mit meinem Programm. Ich bin gerade dabei ein
Display zum laufen zu bekommen. Ich habe früher mir IAR gearbeitet und
zu dieser Zeit hat das Programm auch funktioniert. Jetzt bin ich auf
Eclipse umgestiegen und muss einiges umschreiben und auch ergänzen (also
neue Codeteile).
Ich zeige mal meine main.
int main(void)
{
wdt_disable();
sei();
init_controller();
init_uart();
init_t6963c();
while (1)
{
//uart_putchar('A');
}
Es ist so, wenn ich die „init_uart()“ mit „//“ auskommentiere, dann
bleibt das Programm beim debuggen bei „init_t6963c() stehen. Das ist ja
soweit richtig. Wenn ich „init_uart()“ mit „//“ auskommentiere bleib das
Programm auch schön bei „init_t6963c()“ stehen. Soweit war alles OK.
Wenn ich allerdings beide drin lasse, debugge und dann das Programm
anhalte, steht das ganze bei einer Funktion die gar nicht aufgerufen
werden kann. Und das ganze immer an der gleichen Stelle.
Bei IAR hatte ich das Problem auch schon mal und dann habe ich den
CSTACK und den RSTACK etwas erhöht. Dann ging wieder alles.
Mein Problem ist jetzt das ich nicht weiß wie ich den Fehler finden
kann. Ich bin noch Anfänger mit dem Umgang mit Eclipse. Kann ich
irgendwie herausfinden ob es einen Art „Stacküberlauf“ oder ähnliches
gab?
Zum debuggen verwende ich AVR Studio4.0. Ich habe mein Code nicht hier
gepostet da ich nicht glaub, dass es ein Fehler im Code gibt. Ich habe
eher das Gefühl es ist eine einfache Einstellungssache ist.
Es ist auch so das ich, wenn ich beide Funktionen drin lasse, das
Display normal initialisiert wird (es erscheint ein Text auf dem
Display).
Bevor ich den Fehler etwas einkreisen konnte habe ich beide Funktionen
ganz normal ausgeführt. Das Display hat auch den gewünschten Text
ausgegeben aber als beim debuggen das ganze angehalten habe, habe ich
erwartet dass das Programm in der main stehen bleibt da ja alles
ausgeführt wurde. Aber wie erwähnt da blieb das Programm nicht stehen.
Wie als würde der Controller einen Reset machen oder ähnliches.
Hat eventuell einer hier aus dem Forum eine Idee woran das liegen
könnte?
Viele Grüße und ein schönes Wochenende,
Marcel
PS:
Ich habe eben noch mal den UART-Print in der Schleife aktiviert und dann
bleibt das Programm wirklich nur in der UART-Funktion stehen, so wie es
auch sein sollte. Sehr merkwürdig!!!