Hallo Leute! Ich versuche gerade auf einem Atmega8 eine Konsole nachzubilden. Man soll sich mit einem Terminalprogramm wie z.B. PuTTY via serielle Verbindung mit dem atmega verbinden und dort Befehle abgeben können und eben auch Rückmeldungen vom Controller bekommen. So weit funktioniert alles schon recht gut, nur ist mir aufgefallen dass Fehler auftreten wenn im Programm zu viel Text an den PC gesendet wird. Ich programmiere in C mit dem AVR Studio und WinAVR. Es treten ab ca. 15 printf() Befehlen mit im Schnitt etwa 30 Zeichen Fehler auf. Also vom Compiler gibt keine Fehlermeldungen, aber wenn man sich das ganze auf dem Terminal ansieht erscheinen die ersten 10 Meldungen richtig und danach kommen seltsame Sachen. Es werden Meldungen verschluckt oder teilweise falsch ausgegeben. Wenn man dann einige printf() Befehle auskommentiert funktioniert alles wieder. Es ist dabei egal welche der printf() man nimmt, es funktioniert dann. Ich hatte die vermutung dass der Code zu groß ist, aber daran liegt es anscheinend nicht. Kann es am RAM liegen? Kennt von euch jemand dieses Problem oder hat eine Idee woran es liegen könnte? Vielen Dank und ein schönes WE!
Gast
#776445
Wichtig wäre da noch die Baud Rate gewesen. Dementsprechend findest Du über die Suche eine lange Liste an Threads die dieses Thema in allen Schattierungen behandeln. (Stichwort Fehlerquote, Quartz-Frequenzen) -gruss Michel
Baudrate sind 9600 mit einem 3,6864 Mhz Quartz. Da sollten ja eigentlich keine Fehler auftreten. Die EInstellungen passen auch soweit. Ich vermute eher dass der Compiler da was versemmelt. Wenn im Code "ein Zeichen zu viel" als Ausgabetext steht tritt ein reproduzierbarer Fehler auf. Ändert man im Code die Ausgabetexte tritt ein anderer reproduzierbarer Fehler auf. Nur wenn man eine bestimmte Anzahl an Textausgaben auskommentiert funktioniert alles. Die Suchfunktion hat leider noch keine brauchbaren Hinweise geliefert. MfG, Chris
Gast
#777242
Beitrag "printf_P aus Flash funktioniert scheinbar nicht" Kannst ja mal probieren ob das hilft
Danke für den Tipp, so funktionierts prima!! Dieses Forum is echt super!!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.