Beispiel #1
0
void RunTimeInitialization(void)
{
    // Must be in Config mode to change many of settings.
    ECANSetOperationMode(ECAN_OP_MODE_CONFIG);

    // Select Mode 1
    ECANSetFunctionalMode(ECAN_MODE_1);


    // Make B0 as receiver.
    ECANSetBnTxRxMode(B0, ECAN_BUFFER_RX);

    // RXB0 will receive Stadard messages only.
    ECANSetRxBnRxMode(RXB0, ECAN_RECEIVE_ALL_VALID);

    // B0 will receive Extended
    ECANSetBnRxMode(B0, ECAN_RECEIVE_ALL_VALID);

    // Link RXF0 to RXB0 and RXF1 to B0
    ECANLinkRXF0F1ToBuffer(RXB0, B0);
    ECANLinkRXF0Thru3ToMask(ECAN_RXM0, ECAN_RXM1, ECAN_RXM0, ECAN_RXM0);

    ECANSetRXF0Value(0,         ECAN_MSG_STD);
    ECANSetRXF1Value(0,         ECAN_MSG_XTD);

    ECANSetRXM0Value(0,         ECAN_MSG_STD);
    ECANSetRXM1Value(0,         ECAN_MSG_XTD);

    // Set 125kbps @ 25MHz
    ECANSetBaudRate(2, 4, 8, 8, 8);

    // Return to Normal mode to communicate.
    ECANSetOperationMode(ECAN_OP_MODE_NORMAL);
}
Beispiel #2
0
void main()
{
	unsigned long id;
	BYTE cpt_RB4;
	BYTE cpt_RB5;
    BYTE data_envoi;
    BYTE data_recu[8];
    BYTE dataLen;
    int i;
    
    ECAN_RX_MSG_FLAGS flags;
	init();
	
	cpt_RB4 = 0;
	cpt_RB5 = 0;
	data_envoi = 0;
	
	for (i = 0; i < 8;i++)
		data_recu[i] = 0xFF;
	
	printf(NL NL "début programme" NL);
    ECANInitialize();
    ECANSetBaudRate(2, 4, 8, 8, 8);
    
	while(1)
	{
		if(TRUE == ECANReceiveMessage(&id, data_recu, &dataLen, &flags))
		{
			PIC1_ONLY printf("ECAN: reçu %u octet(s) : %u" NL, dataLen, data_recu[0]);
			led_afficher_int(data_recu[0]);
		}
		
		
		if(bouton_RB4_pressed())
		{
			cpt_RB4 = cpt_RB4 + 1;
			
			data_envoi = (BYTE)cpt_RB4;
			while (!ECANSendMessage(0, &data_envoi, 1, 0));
			PIC1_ONLY printf("compteur de RB4 : %u" NL, cpt_RB4);
			
			led_afficher_int(cpt_RB4);
		}
			
		if(bouton_RB5_pressed())
		{
			cpt_RB5 = cpt_RB5 + 1;
			
			data_envoi = (BYTE)cpt_RB5;
			while (!ECANSendMessage(0, &data_envoi, 1, 0));
			PIC1_ONLY printf("compteur de RB5 : %u" NL, cpt_RB5);
			
			led_afficher_int(cpt_RB5);
		}
	}
}
Beispiel #3
0
void can_init(void)
{
	ECANInitialize();
    ECANSetBaudRate(2, 4, 8, 8, 8);
}