Gast
#2541821
Ich versuche gerade, mehrere Atmel-Mikrocontroller über einen RS485 miteinander "reden" zu lassen. Jeder µC soll dabei die Daten (Zustände der LEDs an einem Port, Zustände der Taster am anderen Port) von jedem anderen µC haben. Lasse ich einen µC alleine mit diesem Programm laufen und schließe ihn nur mit einem RS485<->USB-Adapter am PC an, dann kann ich am PC im Terminal schön die Pakete verfolgen, die der µC verschickt. Verkabel ich mehrere miteinander (derzeit 3 zum Testen), läuft das ganze für eine Weile auch ganz gut. Aber dann hängen sich die Controller nach und nach auf. Manchmal nur einer, oft zwei, manchmal alle drei. Manchmal nacheinander, manchmal gleichzeitig. Manchmal nach 0,5 Sekunden, manchmal nach 10 Sekunden. Aber früher oder später immer. Manchmal verschicken sie bis zum Komplettabstutz noch "falsche" Pakete, irgendwann senden sie einfach gar nichts mehr und die LEDs am Ausgang gehen aus. Da ich das Problem irgendwie nicht wirklich eingrenzen kann, hänge ich mal den kompletten Quellcode an. Derzeit werden ATmega8 auf 8MHz verwendet (testweise auch mal auf 16MHz). Baudrate auf dem Bus ist 19.200 Baud. Es werden MAX481 verwendet für die Umwandlung. Kann man am Quelltext so erkennen, warum mein µC sich aufhängt? Oder woran könnte man es sonst sehen? Könnte auch mit einem Oszilloskop messen - wenn ich denn wüsste, was ich messen kann ;)