Hallo Spezialisten, ich habe folgenden "Effekt" den ich mir nicht erklären kann: In einem ATmega168A habe ich eine Application laufen, die unter anderem den ADC verwendet. Funktioniert alles bestens. Zusätzlich habe ich mir einen Bootloader geschrieben (über die UART). Dieser funktioniert auch einwandfrei und ich kann Hexfiles in den AVR programmieren. Rücksprung in die Application geht auch problemlos und die Application startet dann auch wie gewollt. Ich muss nur leider immer wieder feststellen, dass der ADC nach dem Rücksprung in die Application nicht mehr funktioniert. Erst nach einem Power-On-Reset funktioniert er wieder. Das Programm an sich ist also in Ordnung und wurde offenbar korrekt geflasht, nur hakt es nach dem Rücksprung und ich kann nichts aus den ADC-Registern lesen. Alle anderen Peripherien kann ich hingegen problemlos wieder nutzen nach dem Rücksprung, also Timer, UART etc... Der ADC wird im Bootloader übrigens nicht benutzt, also auch nichts an dessen Registern gemacht. An den Interruptvektoren liegt es auch nicht, der ADC wird ohne Interrupt verwendet bei mir. Hat jemand eine Idee was das sein könnte? Ich bin hier wirklich ratlos und habe auch keine Idee wie ich das "debuggen" könnte... Vielen Dank für alle Tips! Nils
Ich wuerde auf einen Fehler in Zeile 42 tippen... Es gibt 2 Unterschiede. Der erste ist der Bootloader Code, der andere ist die Anfangsort, wo der Usercode anfaengt. Ich wuerde nach dem Bootloaden des Programmes den Beginn des Bootloader mit einem Jump auf den Beginn des Userprogrammes ueberschreiben und dann vergleichen.
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.