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); }
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); }
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 */ } } }
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); }
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); }
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, ×tamp); _can_run_rx_callback(id, data, length); can_fifo_release(CAN1, 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); }