I'm trying to connect CAN1 CAN2 module on DSPICPRO3 (dsPIC30F6014A)
Here is a code
Code: Select all
procedure UsartReceiverInit;
var I, Dummy: byte;
begin
UART1_Init(9600);
delay_ms(100);
for I := 0 to 3 do Dummy := U1RxReg; // clear Uart1 Fifo
U1RXIF_bit := 0; // clear interrupt received flag
U1RXIE_bit := 0; // disable uart1 received interrupt
U1TXIF_bit:=0; // disable uart1 transmitted interrupt
end;
procedure Test_interrupt(); iv IVT_ADDR_C2INTERRUPT; ics ICS_AUTO;
begin
UART1_Write_Text('This is interrupt');
if RXB0IF_C2INTF_bit or RXB1IF_C2INTF_bit then
begin
RXB0IF_C2INTF_bit:=0;
RXB1IF_C2INTF_bit:=0;
Can_Rcv_Flags := 0; // clear message flags
Msg_Rcvd:=0;
msg_rcvd := CAN2Read(msg_id, data_, data_len, Can_Rcv_Flags);
if (msg_rcvd) then
begin
UART1_Write_Text('Receive');
end;
end;
end;
begin
UsartReceiverInit;
UART1_Write_Text('Ready');
ADPCFG := 0xFFFF;
PORTB := 0;
TRISB := 0;
PORTF:=0;
PORTG:=0;
TRISF.B0 := 1;
TRISF.B1 := 0;
TRISG.B0 := 1;
TRISG.B1 := 0;
Can_Init_Flags := 0;
Can_Send_Flags := 0;
Can_Rcv_Flags := 0;
Can_Init_Flags := _CAN_CONFIG_SAMPLE_THRICE and // form value to be used
_CAN_CONFIG_PHSEG2_PRG_ON and // with CANInitialize
_CAN_CONFIG_XTD_MSG and
_CAN_CONFIG_DBL_BUFFER_ON and
_CAN_CONFIG_MATCH_MSG_TYPE and
_CAN_CONFIG_LINE_FILTER_OFF;
CAN1Initialize(1,3,3,3,1,Can_Init_Flags); // initialize CAN
CAN2Initialize(1,3,3,3,1,Can_Init_Flags); // initialize CAN
IRXIE_C1INTE_bit:=0;IRXIE_C2INTE_bit:=0;
WAKIE_C1INTE_bit:=0;WAKIE_C2INTE_bit:=0;
ERRIE_C1INTE_bit:=0; ERRIE_C2INTE_bit:=0;
TXB2IE_C1INTE_bit:=0; TXB2IE_C2INTE_bit:=0 ;
TXB1IE_C1INTE_bit:=0; TXB1IE_C2INTE_bit:=0 ;
TXB0IE_C1INTE_bit:=0; TXB0IE_C2INTE_bit:=0 ;
RXB1IE_C1INTE_bit:=0; RXB1IE_C2INTE_bit:=1 ;
RXB0IE_C1INTE_bit :=0;RXB0IE_C2INTE_bit :=1;
tx_flags := _CAN_TX_PRIORITY_0 and _CAN_TX_XTD_FRAME and _CAN_TX_NO_RTR_FRAME;
// set message flags
data_[0]:=1;
while true do
begin
msg_id:=3;
CAN1Write(msg_id, data_, 1, tx_flags);
delay_ms(100);
end;
end.
(When i use CAN2Read(msg_id, data_, data_len, Can_Rcv_Flags); in while(true) circle it works )
Thanks