IDMaske CAN Programmierung ATmega 32M1

Gast #3713518
Lesenswert?
• ▲
▼
Hallo liebe User,

ich sitzte momentan an einem schönen Softwareprojekt zur Vernetzung von 
mehreren Baugruppen über CAN-Bus. Soweit funktioniert auch alles 
einwandfrei! Damit ich sicher gehen konnte, dass die Übertragung stimmt, 
habe ich erstmal ohne Identifier Maske gearbeitet. Nun geht es ins 
Detail...dazu habe ich den ID-Filter gesetzt. Allerdings kommen nun 
keine Daten mehr an. Ich kann sicherstellen, dass die eingestellte ID 
für das Empfangsprotokoll RPDO1 von Baugruppe 1 mit der des 
Sendeprotokolls TPDO1 von Baugruppe 2 übereinstimmt. Warum funktioniert 
das nicht?

Einstellungen Baugruppe 1:
ID: 0x002
COB_ID RPDO1: 0x183
ID_MASK: 0xFFF

Einstellungen Baugruppe 2:
ID: 0x003
COB_ID TPDO1: 0x183
ID_MASK: -

folgender Init-Code:


/*--------------------------------------------------------------
FUNCTION    :can_rmob_init
INPUT       :CAN_ID, CAN page, ,ID_MASK, data length
OUTPUT      :-
DESCRIPTION :initialize RPDOs
--------------------------------------------------------------*/
void can_rmob_init(unsigned int cob_id, int mob, unsigned int id_mask, 
int length)
{
    CANPAGE=(mob<<4);                                        //MOb
    CANSTMOB=0;                                         //reset MOb 
state
    CANCDMOB=0;                                //reset MOb Control- & 
DLC register
    CANIDT4=0;                                          //no RTR
    CANIDT2=(cob_id<<5);                          //last 3Bits
    CANIDT1=(cob_id>>3);                          //first 5Bits

    CANIDM2=(id_mask<<5);                               //last 3Bits
    CANIDM1=(id_mask>>3);                               //first 5Bits
    CANCDMOB=(length | 0x80);          //enable reception, data length
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.