Hallo zusammen, ich versuche eine Steuerung über ATmel128-Controller zu realisieren. Das Programmieren erfolgt in C, das Kompilieren mit avr-gcc. Dabei tritt folgendes Problem auf: Beim Versuch selbstdefinierte Funktionen aufzurufen bricht der Mikrocontroller den Prozeß zum Zeitpunkt des Funktionsaufrufs ab. Dies geschieht selbst bei leeren Funktionen. Der Programmcode ohne Funktionsaufruf läuft problemlos (=fehlerfrei). Kennt einer von Euch das Problem? oder besser: eine Lösung? Das gleiche Phänomen des Abbruchs tritt auch in einem Programm auf, bei dem ich eine Endlosschleife (mit while(1), for(;;) oder goto Start) realisieren wolte. Das entsprechende Programm habe ich als Datei angehängt. Im vorhandenen Zustand läuft es einwandfrei, beim Einfügen der Schleife (auf eine der oben genannten Arten) kommt es beim Beginn der Schleife zum Abbruch. Ich würde mich freuen, wenn mir jemand bei der Fehlerbehebung helfen könnte. Vielen Dank, Matthias
Hallo Jörg, vielen Dank für die Antwort, aber irgendwie stehe ich gerade auf dem Schlauch. Zumindest kann ich keine entsprechende Passage in den faq finden. Wäre für einen link oder eine Beschreibung dankbar. MfG, Matthias
http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_fuses Wenn Du WinAVR hast, hast Du das auch auf Deiner Festplatte stehen.
wie jörg schon sagte ist es sehr wahrscheinlich die mega103 fuse bit. d.h. standard mässig beim kauf vom mega128 ist die mega103 fuse bit gesetzt und dein mega128 läuft dann im mega103 kompatiblitäts modus. du hast dein programm aber für einen mega128 compiliert und der stack vom mega103 liegt an einer anderen stelle im sram als der vom m128 und somit crashed dein controller nach dem ablauf deiner funktion weil er die rücksprungadresse an einer anderen stelle sucht. nimm pony prog und lösche diese fuse bit.
nachtrag: zum testen kompiliere dein programm mal für einen mega103 und schon sollte dein programm laufen ohne probleme. Dir stehen dann aber nicht alle funktionen vom m128 zur verfügung !! Siehe datenblatt m128 !!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.