Hallo! Ich hoffe, mir kann jemand helfen. Ich habe hier einen Atmel AT89C51CC03 mit CAN-Controller. Alles läuft, schon seit Jahren. Was wir nie betrachtet haben: wie verhält sich der Controller, wenn man ihn zu sehr stresst? Das habe ich nun getan, ihn zu sehr gestresst mit Anfragen in 1ms-Intervall. Nach kurzer Zeit passiert dann folgendes: 1. Der Controller generiert ständig die Interrupts OVRBUF und OVRTIM, also Pufferüberlauf und Timerüberlauf 2. Da wir das dem Anwender, der mit dem Controller vom PC aus kommuniziert, mitteilen, wird in so einem Fall eine Fehlermeldung gesendet. Dann werden die Interrupts gelöscht. Leider sendet der MC ab da ständig die Fehlermeldung, weil er irgendwie in einem Zustand festhängt. Ich weiß nun nicht, wie ich ihn sinnvoll behandle, diesen Fehler, denn es gibt viele Möglichkeiten: 1. CAN-Controller resetten (wirkungsvoll, erfordert aber komplette Neuinitialisierung aller betroffenen CAN-Register) 2. Interrupt bedienen und löschen (reicht nicht, tritt sofort wieder auf) 3. Controller abschalten (hilft nur solange bis er wieder eingeschaltet wird) 4. Messageboxen sperren (hilft das was? Ich weiß nicht, ob das Problem überhaupt mit den Messageboxen zusammenhängt) 5. Interrupt sperren (hilft nur solange, bis er wieder freigegeben wird) 6. Alle Messageboxen leeren (siehe Punkt 4) Was würdet ihr tun bzw. habt ihr auch schon mal das Problem gehabt und es gelöst? Ich möchte erreichen, daß der MC bei einem Pufferüberlauf zwar eine Fehlermeldung absetzt, danach aber wieder einsatzbereit ist. Wenn der Anwender dann wieder zu schnell aufeinanderfolgende Nachrichten sendet, wiederholt sich das Ganze halt. Aber der MC soll sich nicht in der Routine aufhängen, daß er nur noch Fehler-Interrupts generiert. Danke schonmal! Maik
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.