Konfiguration der Mailbox für AT90CAN 128

Gast #1187512
Lesenswert?
• ▲
▼
Hallo,

Ich beschäftige mich seit einigen Zeit mit dem Mikrocontroller 
AT90CAN128 von Atmel.
Ich sende und empfange Nachricht per CAN-Bus.Ich habe bis jetzt für das 
Empfanfen die Mailbox vorher gewählt. Nun möchte ich eine kleine Routine 
schreiben, die mir automatisch die freie Mailbox zurück gibt. Wenn es 
keine freie Mailbox gibt, die 0xF zurückgeben.
ich habe die Funktion so definiert, aber ich bekomme nicht die 0xF als 
Rückgabewert. Ich bekomme immer die Werte 0 bis 14 und wieder die 0 bis 
14.
Bitte kann jemanden mir helfen.

Ich danke Ihnen


 uint8_t Get_FreeMob(void)
 {
   uint8_t ctrlReg;
   uint8_t equality = 1;
   for ( uint8_t freemob = 0; freemob < 15; freemob++)
   {
     CANPAGE = freemob << 4;
     ctrlReg = (CANCDMOB & ((1<<CONMOB0) |(1<<CONMOB1)));
     if (ctrlReg == 0){
       equality = 0;
       return freemob;
     }
   }

   if(equality==1){
     return 0xF;
   }
 }

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.