Forum: Mikrocontroller und Digitale Elektronik SID5 fehlt mit Renesas CAN API


von Patrick Hoffmann (Gast)


Lesenswert?

Ich verwende die Renesas CAN API um zwischen zwei M16C Controllern CAN 
zu benutzen.

Mir ist aufgefallen, dass Bit 5 der SID (CAN-ID) immer 0 bleibt. Wenn 
ich also eine SID 111 1111 1111 schicke, kommt 111 1110 1111 an.

Ich weiß es klingt verrückt, aber es ist tatsächlich so!

In den Sourcen der Renesas CAN API werden die ID-Register der slots so 
gesetzt:

c1slot[slot_nr].ba.sidh = ((in_trm_data_p->id)>>6) & 0x1f;  // SID10-6
c1slot[slot_nr].ba.sidl = (in_trm_data_p->id) & 0x3f;       // SID5-0

und so gelesen:

in_rec_data_p->id = ((unsigned short)c0slot[slot_nr].ba.sidh<<6) + 
c0slot[slot_nr].ba.sidl;

Sieht irgendwie korrekt aus und ich weiß mir nicht mehr anders zu 
helfen, als Bit 5 nicht mehr zu verwenden. Das sollte aber nicht die 
Lösung sein. Kennt jemand das Problem im Zusammenhang mit der Renesas 
CAN-API für M16C ?

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
Noch kein Account? Hier anmelden.