Discussions Générales > Présentez vous !

Je me présente besoin Bus Can

<< < (2/2)

Dominique:
Voici les lignes de code qui utilise le Can dans mon Due :


--- Code: ---
#include <due_can.h>
... puis dans le setup ...

  // Initialize CAN0. Set the proper baud rates here
  if (Can0.begin(CAN_BPS_500K)) {
    Serial.println("CAN ok !");
    myGLCD.print((char*)"CAN OK ", 100,410,0);
  } else {
    Serial.println("CAN ERROR !");
  }
 
  //By default there are 7 mailboxes that are RX boxes
  //This sets each mailbox to have a filter
 
  //extended
  //syntax is mailbox, ID, mask, extended
  Can0.setRXFilter(0, 0x2FFFFF, 0x1FFFFFFF, true);
  Can0.setRXFilter(1, 0x2F0000, 0x1FFFFFFF, true);
  Can0.setRXFilter(2, 0x2F0000, 0x1FFFFFFF, true);
 
  //standard 
  Can0.setRXFilter(3, 0x10, 0x7F0, false);
  Can0.setRXFilter(4, 0x11, 0x7F0, false);
  Can0.setRXFilter(5, 0x12, 0x7F0, false);
  Can0.setRXFilter(6, 0x1E, 0x7F0, false);


  for (int i=0; i<IdMax; i++) {    // pour le comptage des messages CAN
    CANCount[i]=0;
    ValId[i]=0;
  }

--- Fin du code ---

et dans la loop :

--- Code: ---void loop() {
  Itineraire* it;
  int code=0;
  CAN_FRAME incoming;
  CAN_FRAME outgoing;
  /*
    * TRAITEMENT DES MESSAGES CAN
  */
 
  while (Can0.available() > 0) { 
    Can0.read(incoming);
    //countMessagesByIds(incoming);
    //printFrame(incoming);
    answerFrame(incoming);     
    // Can0.sendFrame(incoming) est envoyé par cette procédure qui est l'automate reseau
  }
 
--- Fin du code ---

claudius310:
Bonjour,

Merci de votre réponse
Je vais acheter deux nouvelles cartes comme la votre pour essayer à nouveau, mais le temps que cela vienne de chine....
ensuite je m'y remets
En tout état de cause je reviens vers vous dès que j'ai le matériel et fait quelques essais
je vais aussi essayer de nouvelles cartes de bus CAN avec des filtres qui diminuent les phénomènes d'hystérésis car j'avais mis l'oscilloscope directement sur la sortie de l'arduino et ce n'était pas très propre.

Encore merci

Navigation

[0] Index des messages

[*] Page précédente

Utiliser la version classique