Gast
#1698099
Hallo, ihr seid meine letzte Hoffnung. Und zwar benützte ich wie oben angegeben einen Atmel AT90CAN128. Es werden 3 CAN Nachrichten über einen interrupt eingelesen. So weit so gut. Mein Problem: Alles funktioniert so lange die Nachrichten nur sporadisch kommen. Sobald die Daten aber mit einer Zykluszeit von ca. 30ms gesendet bzw. empfangen werden bleibt der yC hängen. Heißt es werden keine Daten mehr empfangen. Beim debugen kommt der Fehler nicht vor, heißt, Programm läuft, Daten werden empfangen und verarbeitet. Erste Hilfe meinerseits war über den Watchdog den yC immer wieder zurück zu setzen wenn keine Daten mehr empfangen werden, dies funktioniert nur zum Teil! Wenn der yC sich resetet oder ich die Platine von Hand neustartet tritt zum teil der exakt selbe Fehler direkt wieder auf! Was ich allerdings beobachtet habe, häufig nur wenn auch zum selben Zeitpunkt (beim start) auch Daten auf dem CAN-Bus versendet werden. Komisch ist auch noch, dass eine Nachricht noch eingelesen wird und zwei nicht mehr. Nun meine Frage: Woran kann das liegen? :-( Besitzt der Atmel einen internen Buffer welcher direkt voll ist bevor die Daten verarbeitet werden können? Kann ich diesen löschen? Kann ich auch nur jeden zweiten Interrupt auslösen? Achso, während meinen Berechnungen deaktiviere ich den Interrupt. Hoffe Ihr könnt mir helfen. Bin echt am verzweifeln da mit dem yC am Donnerstag Tests geplannt sind und wenn ich das Problem bis dahin nicht gefunden bzw. gelöst hab alles ins Wasser fällt :-( Hoffe meine Erklärung war nicht ganz verwirrend :-) Vielen Dank schon mal. Gruß Timo