Hey Leute,
ich habe ein Problem und verstehe nicht ganz wo das problem liegt.
Mein uC (Atmega64C1) empaegngt und sendet alle CAN MSG wie erwartet,
aber
mir ist aufgefallen, dass wenn die CAN ID sehr identisch sind(1F1 und
1F5 z.B.), wird ein Interrupt ausgeloest und es werden falsche daten
reingeschrieben ins richtige MOB. Meine Vermuttung ist, dass es an der
Maskierung liegt, jedoch ich sehe da keinen Fehler. Oder Ihr vielleicht.
1 | void CAN_setIDMask(uint32_t idm)
|
2 | {
|
3 | CANIDM4 = (uint8_t)(idm << 11);
|
4 | CANIDM2 = (uint8_t)(idm << 5);
|
5 | CANIDM1 = (uint8_t)(idm >> 3);
|
6 | }
|
Gruss Stefan