I can't share the complete code but after this function I have the error "No source available for "0x000001 (0x000001)()".
typedef struct {
UBYTE IDR0; // Identifier Register 0
UBYTE IDR1; // Identifier Register 1
UBYTE Data0; // Data Segment Register 0
UBYTE Data1; // Data Segment Register 1
UBYTE Data2; // Data Segment Register 2
UBYTE Data3; // Data Segment Register 3
UBYTE Data4; // Data Segment Register 4
UBYTE Data5; // Data Segment Register 5
UBYTE Data6; // Data Segment Register 6
UBYTE Data7; // Data Segment Register 7
UBYTE DLC; // Data Length Register
UBYTE Req; // Request for transmit
} CAN_TX;
CAN_TX TX_QUEUE[3];
//Planned is that this function queues a message in the transmit buffer and then enables transmit interrupts so that it gets sent.
Void TxMessage(UBYTE *data, UBYTE length) {
UWORD id;
id = 0x862;
TX_QUEUE[Msg].IDR0 = (id >> 3) & 0xFF; //upper 8 bits of 11-bit Identifier;
TX_QUEUE[Msg].IDR1 = (id << 5) & 0xFF; //lower 3 bits of 11-bit Identifier
TX_QUEUE[Msg].Data0 = data[0];
TX_QUEUE[Msg].Data1 = data[1];
TX_QUEUE[Msg].Data2 = data[2];
TX_QUEUE[Msg].Data3 = data[3];
TX_QUEUE[Msg].Data4 = data[4];
TX_QUEUE[Msg].Data5 = data[5];
TX_QUEUE[Msg].Data6 = data[6];
TX_QUEUE[Msg].Data7 = data[7];
TX_QUEUE[Msg].DLC = length;
TX_QUEUE[Msg].ReqXMT = 0x01;
Msg++;
if (Msg >= 3) {
Msg = 0;
}
CAN0TIER = 0x01
}
}