Gast
#179638
Moin! Ich habe folgendes Problem: Beim MCP 2515 (CAN-Controller) gibt es zwei Register, in denen die Adresse des Absenders steht. Da die Adresse etwas komisch aufgeteilt ist, würde ich sie gerne für Normalsterbliche lesbarer machen. RXB0SIDL hat in den Bits <7:5> die Bits <2:0> der Adresse stehen. Im RXB0SIDH stehen die Bits <10:3>. Mein Code sieht wie folgt aus: SIDL = read_MCP(RXB0SIDL);// unteres Adress-Byte einlesen SID<2:0> SIDL = SIDL>>5; // die obersten 3 Bit nach unten verschieben SIDH = read_MCP(RXB0SIDH);// oberes Adress-Byte einlesen SID<10:3> i = SIDH<<3; j = (i | SIDL); // die unteren 5 Bit von SIDH mit modifiziertem SIDL verodern i = SIDH>>5; SIDH = i;// SID modifizieren Dass man das einfach machen kann, weiß ich. Mit den unteren Bits von SIDL funktioniert das auch wunderbar, leider werden die oberen Bits aber nicht übertragen. Ich steh momentan etwas auf dem Schlauch. Es wäre schön, wenn mir jemand einen Hinweis geben könnte, was ich falsch mache. An den Typen liegt es nicht. Die sind alle gleich. Vielen Dank! Gruß Rahul