Hallo zusammen, ich hab ein (hoffentlich) kleines Problem mit einem CAN-Programm. Das Programm soll sobald ich einen Schalter betätige eine Nachricht schicken, und sobald eine Nachricht kommt, diese zurücksenden an den Sender. Hardware ist das olimex CAN-AVR Board sowie ein PEAK CAN-USB Adapter mit PCAN-View als Software. Das Programm aufm AVR tut auch ohne Probleme, nur sendet der Controller nur beim ersten Empfang einer Nachricht diese wieder zurück. Bei der 2. Nachricht an den Controller springt er nichtmehr in die ISR. Das Programm hab ich mal angehängt, wär klasse wenn einer ne Idee hat. Achja, Controller is ein AVR AT90CAN64 Liebe Grüße, Fabi
Hi Fabi, das Problem hatte ich auch seinerzeit. Ich habe das so gelöscht: void ReEnableRX_MOB(void) { /* Das erneute Beschreiben des CDMOB-Registers ermöglicht erst das erneute */ /* Empfangen des CAN-Datenrahmens */ unsigned char varl_CANCDMOB_modify = CANCDMOB; CANCDMOB = varl_CANCDMOB_modify; } Im Prizip habe ich CANCDMOB zwischengespeichert und den selben Inhalt wieder beschrieben. Somit habe ich nichts verändert. Wichtig ist, dass dieses Register von der CANPAGE abhängt. Den Funktionsinhalt vn ReEnalbeRX_MOB müßtest Du bei Dir in die ISR einfügen, wo das CANCDMOB beschrieben wird. Probier es mal und viel Glück
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.