User manual
mikroPascal PRO for dsPIC30/33 and PIC24
MikroElektronika
311
const
_ECAN_RX_FILTER_BITS : word = 0x000F; // Use this to access lter bits
_ECAN_RX_FILTER_0 : word = 0x00; // lter0 match
_ECAN_RX_FILTER_1 : word = 0x01; // lter1 match
_ECAN_RX_FILTER_2 : word = 0x02; // ...
_ECAN_RX_FILTER_3 : word = 0x03;
_ECAN_RX_FILTER_4 : word = 0x04;
_ECAN_RX_FILTER_5 : word = 0x05;
_ECAN_RX_FILTER_6 : word = 0x06;
_ECAN_RX_FILTER_7 : word = 0x07;
_ECAN_RX_FILTER_8 : word = 0x08;
_ECAN_RX_FILTER_9 : word = 0x09;
_ECAN_RX_FILTER_10 : word = 0x0A;
_ECAN_RX_FILTER_11 : word = 0x0B;
_ECAN_RX_FILTER_12 : word = 0x0C;
_ECAN_RX_FILTER_13 : word = 0x0D;
_ECAN_RX_FILTER_14 : word = 0x0E; // ...
_ECAN_RX_FILTER_15 : word = 0x0F; // lter15 match
_ECAN_RX_OVERFLOW : word = 0x10; // Set if Overowed else cleared
_ECAN_RX_INVALID_MSG : word = 0x20; // Set if invalid else cleared
_ECAN_RX_XTD_FRAME : word = 0x40; // Set if XTD message else cleared
_ECAN_RX_RTR_FRAME : word = 0x80; // Set if RTR message else cleared
You may use bitwise and to extract received message status. For example:
Copy Code To Clipboard
if (MsgFlag and _ECAN_RX_OVERFLOW <> 0) then
begin
...
// Receiver overow has occurred.
// We have lost our previous message.
end
ECAN_MASK Constants
The ECAN_MASK constants dene mask codes. The routine ECANxSetMask expect one of these as their argument:
Copy Code To Clipboard
const
_ECAN_MASK_0 : word = 0;
_ECAN_MASK_1 : word = 1;
_ECAN_MASK_2 : word = 2;
ECAN_FILTER Constants
The ECAN_FILTER constants dene lter codes. The routine ECANxSetFilter expect one of these as their argument: