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; } }
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.