Gast
#4503260
Hallo,
könnte mir bitte jemand weiterhelfen. Ich bin noch neu auf dem Gebiet
und versuch gerade einen Interrupt in eine Klasse zu packen.
Das ist mein Code:
// Interrupt fuer Empfang einer Nachricht
SIGNAL(SIG_CAN_INTERRUPT1)
{
uint8_t save_canpage;
uint8_t mob;
uint8_t a=0;
uint32_t idm;
int8_t data;
uint8_t length;
static CANMessage msg;
// Aktuelle CANPAGE sichern
save_canpage = CANPAGE;
data=CANMSG;
// Index des MOB ermitteln, der den Interrupt ausgelöst hat
mob = can_get_mob_interrupt();
// Falls es kein gültiges MOB war abbrechen
if(mob == NOMOB)
return;
// Objekt das den Interrupt ausgelöst hat holen
can_get_mob(mob);
// Daten des MOBs aus CANMSG auslesen
can_get_data();
// Id der Nachricht holen
// message.id = can_get_id();
// message.idm = 0b01011001;
can_receive();
// RXOK-Flag löschen
clearbit(CANSTMOB, RXOK);
// MOB auf Empfang und CAN 2.0B Standard setzen
can.can_set_mode(CAN_MODE_RECEIVE_DATA);
// CANPAGE wiederherstellen
CANPAGE = save_canpage;
}
Was muss ich beachten?