Gast
#332023
Hallo, ich hatte für eine Rolladensteuerung einen ATMEGA 168 vorgesehen und nun bemerkt, daß der Flash viel zu klein ist. Daher möchte ich nun einen ATMEGA 128 verwenden. Doch da gibt es beim Umstieg auf den anderen Prozessor schon die ersten Probleme mit dem "Return-Befehl": Nach dem Abarbeiten des Unterprogramms springt das Programm nicht an die Stelle zurück, wo es aufgerufen wurde. Hier die Hard- und Softwareumgebung: * ATMEGA128-16 * GNU-Compiler * AVR-Starterkit + Zusatzplatine mit TQFP-Schnellspannsockel * AVR-Studio 4.11 Das kleine Testprogramm sieht wie folgt aus: // ***** Hauptprogramm ********* int main () { ucTest = test1(); test2(); for (;;) { ; // Do nothing } return (0); } // ***** Unterprogramm 1 ********* int test1(void) { ucZaehler_1++; ucZaehler_2--; return(ucZaehler_1); } // ***** Unterprogramm 2 ********* void test2(void) { ucZaehler_1--; return; } Das Unterprogramm "test1" wird abgearbeitet, aber zum Unterprogramm "test2" kommt das Programm erst gar nicht. Woran kann es liegen? Bin schon am verzweifeln.... Anbei das C-File und Make-File.