C 16 Bit Variable in 2x 8 Bit Variable aufteilen und dann noch Bits verschieben

Hallo Christian,

das kann an allem möglichen liegen.

Hast du das SPI-Interface richtig konfiguriert? Wenn du Software-SPI verwendest, müssen die Pins für das SPI richtig konfiguriert werden. Bei Hardware-SPI muss das SPI-Modul richtig konfiguriert werden (richtigen SPI Mode 0 bis 3 wählen).

Kannst du bestimmte Register des CAN-Controllers, von denen du den Reset-Zustand kennst, auslesen und an einem Port ausgeben und messen?

Noch ein kleiner Hinweis zu dem Sourcecode-Ausschnitt ...
Code:
rx_datalength = rx_datalength << 4;
rx_datalength = rx_datalength >> 4;
du möchtest sicherlich die oberen 4 Bits auf "0" setzen. Das geht auch so:
Code:
rx_datalength = rx_datalength & 0b00001111;
Ich würde den Fehler zuerst bei SPI und dem Anschluss des CAN-Controllers an den AVR suchen. Testweise einen bekannten Registerinhalt auslesen und diesen prüfen.

Gruß,
Dirk
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)