Hallöchen
Ich verwenden die LIB die man von Atmel runterladen kann.
Das Senden von Daten funktionert einwandfrei.
Aber mit dem Empfangen von Daten komme ich nicht zu 100% klar.
Ich möchte Daten mit nur einer CAN-ID empfangen.
Ich empfange aber immer auch andere CAN-Messages ?
Die CAN-ID der empfangenen Message kann ich dann auslesen.
Kennt sich jemand damit aus und kann mir helfen ?
Hier mein Code :
............................
st_cmd_t message2;
// INIT
     message2.pt_data = &CanRecBuffer[0];           message2.cmd = 
CMD_RX;
     message2.id.ext = 0x02;       message2.dlc = 8;
     message2.ctrl.ide = 0;        message2.ctrl.rtr = 0;
     can_cmd(&message2);
// empfangen
     if (can_get_status(&message2) == CAN_STATUS_COMPLETED)
             {
             EmpfangenAuswerten ();
             can_cmd(&message2);
             }
Danke für Eure Hilfe.
mfg
Mandi
  > Beitrag "AT90CAN128 Bit und Form Errors"
Der Codeschnippsel ist arg knapp. Bist du sicher, dass du
1) nicht auf den Status CAN_CMD_ACCEPTED warten musst, der anzeigt, dass 
dein can_cmd() akzeptiert wurde?
2) eine Schleife um das einzelne if nicht brauchst? ich würde in einer 
Schleife pollen, ob der Status CAN_STATUS_COMPLETED (oder eine 
Fehlermeldung bzw. Timeout) erreicht wird.
  Hallöchen >>Der Codeschnippsel ist arg knapp. Bist du sicher, dass du OK es steht aber alles nötige drinnen >>1) nicht auf den Status CAN_CMD_ACCEPTED warten musst, der anzeigt, dass >>dein can_cmd() akzeptiert wurde? Stimmt. Aber ich sehe keinen Grund warum das Command nicht akzeptiert werden sollten. Haber daher drauf verzichtet. Es sind 6 MOB's vorhanden und ich brauche nur 2 davon. Was kann passieren , dass das COommand nicht akzeptiert wird ? >>2) eine Schleife um das einzelne if nicht brauchst? ich würde in einer >>Schleife pollen, ob der Status CAN_STATUS_COMPLETED (oder eine >>Fehlermeldung bzw. Timeout) erreicht wird. Es handelt sich um eine Schleife. Mache aber andere Dinge dazwischen. ( z.B.: die MosFet für einen BLCD in Abhängigkeit der Hallsensoren ansteuern, SPI zur Slave uC usw ... ) Muss beim Empfangen nicht eine MASK gesetzt werden ? Erfolgt dies Automatisch mit der ID ? Danke Euch. hmg Mandi
> Muss beim Empfangen nicht eine MASK gesetzt werden ? Du wirst wohl eine Filterfunktion einbauen müssen. Das habe ich seinerzeit auch gemacht, um Messages selektiv empfangen zu können. Der SJA1000 von Philips hat dafür extra ein Register -> ACCEPTANCE FILTER (ACF).
Hallöchen >> Muss beim Empfangen nicht eine MASK gesetzt werden ? >Du wirst wohl eine Filterfunktion einbauen müssen. In die Software ? Ich dachte der integrierte CAN-Receiver kann das ? Ich dachte der hat einen ACCEPTANCE FILTER ? hmg Mandi
Hallöchen Muss es erst testen aber "Can_set_mask_mob ();" sollte mein Problem lösen. hmg Mandi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
  
  Bestehender Account
  
  
  
  Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
  Noch kein Account? Hier anmelden.