User manual

mikroC PRO for dsPIC
MikroElektronika
287
RxTx_Data[0] = 9; // set initial data to be sent
CAN2Initialize(1,3,3,3,1,Can_Init_Flags); // initialize CAN2
CAN2SetOperationMode(_CAN_MODE_CONFIG,0xFF); // set CONFIGURATION mode
CAN2SetMask(_CAN_MASK_B1,-1,_CAN_CONFIG_MATCH_MSG_TYPE & _CAN_CONFIG_XTD_MSG); //
set all mask1 bits to ones
CAN2SetMask(_CAN_MASK_B2,-1,_CAN_CONFIG_MATCH_MSG_TYPE & _CAN_CONFIG_XTD_MSG); //
set all mask2 bits to ones
CAN2SetFilter(_CAN_FILTER_B2_F3,3,_CAN_CONFIG_XTD_MSG); // set
id of î‚¿lter B1_F1 to 3
CAN2SetOperationMode(_CAN_MODE_NORMAL,0xFF); // set
NORMAL mode
Tx_ID = 12111; // set
transmit ID
CAN2Write(Tx_ID, RxTx_Data, 1, Can_Send_Flags); // send
initial message
while(1) { //
endless loop
Msg_Rcvd = CAN2Read(&Rx_ID , RxTx_Data , &Rx_Data_Len, &Can_Rcv_Flags); // receive
message
if ((Rx_ID == 3u) && Msg_Rcvd) { // if
message received check id
PORTB = RxTx_Data[0]; // id
correct, output data at PORTB
RxTx_Data[0]++; // increment
received data
Delay_ms(10);
CAN2Write(Tx_ID, RxTx_Data, 1, Can_Send_Flags); // send
incremented data back
}
}
}