SID5 fehlt mit Renesas CAN API

Gast #1296617
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 ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren