Hi. Ich habe einene Atmega128 µC mit STK500 und 501. Ich versuche ganz normal auf USART zu schreiben, bekomme auch etwas über die RS232 Schnittstelle herein, jedoch scheint der Microcontroller das Zeichen in einer Endlosschleife auszugeben. Zuerst bemerkte ich den Fehler gar nicht da ich die Zeichen sowieso in einer Endlosschleife ausgegeben habe, bis ich dann bemerkte das wenn ich mehrere verschiedene Zeichen nacheinander ausgeben will immer nur dasselbe bekomme. Ich weiß wirklich nicht weshalb, der Code entspricht dem Tutorial auf dieser Seite bzw. im Datenblatt des AVR nahezu 1:1. Ich hatte Anfangs Probleme mit der Baud-Rate, die sind aber schon gelöst seit ich einen Externen Clock verwende.
Baue mal in deine Endlosschleife einen kleinen wait befehl ein. Dein Speicher am PC duerfte sonst voll laufen.
Ich habe jetzt mal die delayms routine von dieser seite eingebaut (mein compiler kennt den wait() befehl anscheinend nicht) Ich bekomme trotzdem immer noch dasselbe Zeichen immer wieder...nur das die Abstände zwischen den einzelnen länger geworden sind. Ich hab dann auch versucht in der Subroutine zweimal aufs UDR zu schreiben. Nix. Macht immer noch nur das erste zeichen. (In diesem Fall also: nur immer dddddddddddddddd etc...)
Hast Du das Fuse-Bit für den AtMega103 Compatibility-Mode deaktiviert? Dieses Bit ist per Default programmiert, der AtMega128 wird nämlich immer im AtMega103-Mode ausgeliefert. MfG Peter
Vielen Dank, es war wirklich diese Fuse... And dem Problem sitze ich schon ziemlich lange. Ich war mir zwar ziemlich sicher das es nicht am Code liegen konnte aber an was es sonst liegen könnte kam mir einfach nicht in den Sinn.
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.