void usb_lp_can_rx0_isr(void)
{
	uint32_t id, fmi;
	bool ext, rtr;
	uint8_t length, data[8];

	can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data);

	if (data[0] & 1)
		gpio_clear(GPIOA, GPIO6);
	else
		gpio_set(GPIOA, GPIO6);

	if (data[0] & 2)
		gpio_clear(GPIOA, GPIO7);
	else
		gpio_set(GPIOA, GPIO7);

	if (data[0] & 4)
		gpio_clear(GPIOB, GPIO0);
	else
		gpio_set(GPIOB, GPIO0);

	if (data[0] & 8)
		gpio_clear(GPIOB, GPIO1);
	else
		gpio_set(GPIOB, GPIO1);

	can_fifo_release(CAN1, 0);
}
Exemple #2
0
void usb_lp_can_rx0_isr(void)
{
	u32 id, fmi;
	bool ext, rtr;
	u8 length, data[8];

	can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &length, data);

	if (data[0] & 1)
		gpio_clear(GPIOA, GPIO8);
	else
		gpio_set(GPIOA, GPIO8);

	if (data[0] & 2)
		gpio_clear(GPIOB, GPIO4);
	else
		gpio_set(GPIOB, GPIO4);

	if (data[0] & 4)
		gpio_clear(GPIOC, GPIO15);
	else
		gpio_set(GPIOC, GPIO15);

	if (data[0] & 8)
		gpio_clear(GPIOC, GPIO2);
	else
		gpio_set(GPIOC, GPIO2);

	can_fifo_release(CAN1, 0);
}
Exemple #3
0
void usb_lp_can_rx0_isr(void) {
    uint32_t id, fmi;
    bool ext, rtr;
    uint8_t dlc, data[8];

    can_receive(CAN1, 0, false, &id, &ext, &rtr, &fmi, &dlc, data);
    can_fifo_release(CAN1, 0);

    /* check for extended id, dlc = 5 and id 0x0000xxxx */
    if ((ext) && (dlc == 5) && !(id & 0xffff0000)) {
	/* M*rklin Start/Stop CMD
	   00004711 [5] 00 00 00 00 00 -> Stop
	   00004711 [5] 00 00 00 00 01 -> Start
	 */
	if (data[4] && 0x01)
	    if (!status) {
		/* send stop immediatly if Stop Button pressed */
		can_transmit(CAN1, 0x0000fffe, true, false, 5, data);
		gpio_set(GPIOC, GPIO13);	/* clear green LED */
		gpio_set(GPIOB, GPIO4);		/* clear On LED */
		gpio_clear(GPIOB, GPIO5);	/* light Off LED */
	    } else {
		gpio_clear(GPIOC, GPIO13);	/* light green LED */
		gpio_clear(GPIOB, GPIO4);	/* light On LED */
		gpio_set(GPIOB, GPIO5);		/* clear Off LED */
	} else {
	    gpio_set(GPIOC, GPIO13);		/* clear green LED */
	    gpio_set(GPIOB, GPIO4);		/* clear On LED */
	    gpio_clear(GPIOB, GPIO5);		/* light Off LED */
	}
    }
}
Exemple #4
0
static void can_isr_rx(uint32_t canport, uint32_t fifo)
{
	struct can_message *msg = canmsg_get();

	if (msg == NULL) {
		//LED_TGL(LED4);
		can_fifo_release(canport, fifo);
		return;
	}

	msg->source = (fifo << 4) | ((canport == CAN1) ? 1 : 2);
	msg->mobid = can_fifo_get_mobid(canport, fifo);
	msg->time = can_fifo_get_timestamp(canport, fifo);

	can_fifo_read_data(canport, fifo, msg->data, &msg->length);
	can_fifo_release(canport, fifo);
}
Exemple #5
0
void usb_lp_can_rx0_isr(void)
{
  uint32_t id, fmi;
  bool ext, rtr;
  uint8_t length, data[8];

  can_receive(CAN1,
              0,     /* FIFO: 0 */
              false, /* Release */
              &id,
              &ext,
              &rtr,
              &fmi,
              &length,
              data);

  _can_run_rx_callback(id, data, length);

  can_fifo_release(CAN1, 0);
}
Exemple #6
0
void can1_rx0_isr(void){
  uint32_t id;
  uint8_t fmi;
  bool ext, rtr;
  uint8_t length, data[8];
  uint16_t timestamp;

  can_receive(CAN1,
              0,     /* FIFO: 0 */
              false, /* Release */
              &id,
              &ext,
              &rtr,
              &fmi,
              &length,
              data,
              &timestamp);

  _can_run_rx_callback(id, data, length);

  can_fifo_release(CAN1, 0);
}
Exemple #7
0
void usb_lp_can_rx0_isr(void)
{
	static int delay = 100;

	can_receive(CAN1, 0, false,
		    &can_rx_msg.id,
		    &can_rx_msg.ide,
		    &can_rx_msg.rtr,
		    &can_rx_msg.fmi,
		    &can_rx_msg.dlc,
		    can_rx_msg.data);

	can_fifo_release(CAN1, 0);


	if (can_rx_msg.data[0] & 1) {
		ON(LED_ORANGE);
	} else {
		OFF(LED_ORANGE);
	}

	if (can_rx_msg.data[0] & 2) {
		ON(LED_GREEN);
	} else {
		OFF(LED_GREEN);
	}

	if(delay == 0) {
		delay = 100;
		TOGGLE(LED_RED);
	}else{
		delay--;
	}
		TOGGLE(LED_BLUE);

	//_can_run_rx_callback(can_rx_msg.id, can_rx_msg.data, can_rx_msg.dlc);

}