Logik-Problem

Gast #179638
Lesenswert?
• ▲
▼
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
Gast #179642
Lesenswert?
• ▲
▼
Leider muß ich gewisse Räder neu erfinden, da die Leute (bis jetzt
einer), der die PC-Seite programmieren soll, nicht wirklich Ahnung hat,
was er überhaupt machen will/soll.
Das Semester ist fast vorbei, und er hat nur ein paar schöne Bilder in
VB gemalt...
Gast #179643
Lesenswert?
• ▲
▼
Aber genau die Routinen die notwendig sind, um die CAN-IDs fuer standard
oder extended Frames zwischen unsigned long und den MCP-Registern hin
und herzuschieben, gehoeren wahrscheinlich kaum zu den Dingen, die man
neu erfinden "muß". Was das mit der PC-Seite zu tun hat, versteh'
ich grad' nicht, aber auch egal. Whatever, sollte ja nur ein Tipp
sein, um Zeit zu sparen.
Gast #179644
Lesenswert?
• ▲
▼
Naja, warum soll ich in irgendwelchen Bibliotheken suchen, wenn mir die
Lösung selber einfallen kann (s.o.).
Das Protokoll für die PC-Seite muß so einfach wie möglich gehalten
werden. Deswegen passiert die Bit-Verschiebungkomplett im
Mikrocontroller...
Ich hatte vorhin einfach nur ein Brett vor dem Kopf...
Gast #179645
Lesenswert?
• ▲
▼
>Deswegen passiert die Bit-Verschiebungkomplett im
>Mikrocontroller...

Hm?

Das muss sie doch so oder so...
So weit ich das in Erinnerung habe, sind in einem der Register noch die
Flags für Extd/Std-Frames enthalten usw.
Aber das hat doch überhaupt nichts mit der PC-Seite zu tun!?!?

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