Konfiguration der Mailbox für AT90CAN 128

Gast #1187512
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.