mirror of
https://github.com/candle-usb/candleLight_fw.git
synced 2025-01-28 06:02:52 +08:00
port fix for issue #15
This commit is contained in:
parent
f38ddcacf5
commit
73dfc741c8
39
src/main.c
39
src/main.c
@ -101,8 +101,8 @@ int main(void)
|
||||
struct gs_host_frame *frame = queue_pop_front(q_from_host);
|
||||
if (frame != 0) { // send can message from host
|
||||
if (can_send(&hCAN, frame)) {
|
||||
// Echo sent frame back to host
|
||||
frame->timestamp_us = timer_get();
|
||||
// Echo sent frame back to host
|
||||
frame->timestamp_us = timer_get();
|
||||
send_to_host_or_enqueue(frame);
|
||||
|
||||
led_indicate_trx(&hLED, led_2);
|
||||
@ -117,23 +117,26 @@ int main(void)
|
||||
|
||||
if (can_is_rx_pending(&hCAN)) {
|
||||
struct gs_host_frame *frame = queue_pop_front(q_frame_pool);
|
||||
if ((frame != 0) && can_receive(&hCAN, frame)) {
|
||||
received_count++;
|
||||
if (frame != 0)
|
||||
{
|
||||
if (can_receive(&hCAN, frame)) {
|
||||
received_count++;
|
||||
|
||||
frame->timestamp_us = timer_get();
|
||||
frame->echo_id = 0xFFFFFFFF; // not a echo frame
|
||||
frame->channel = 0;
|
||||
frame->flags = 0;
|
||||
frame->reserved = 0;
|
||||
frame->timestamp_us = timer_get();
|
||||
frame->echo_id = 0xFFFFFFFF; // not a echo frame
|
||||
frame->channel = 0;
|
||||
frame->flags = 0;
|
||||
frame->reserved = 0;
|
||||
|
||||
send_to_host_or_enqueue(frame);
|
||||
send_to_host_or_enqueue(frame);
|
||||
|
||||
led_indicate_trx(&hLED, led_1);
|
||||
|
||||
} else {
|
||||
queue_push_back(q_frame_pool, frame);
|
||||
led_indicate_trx(&hLED, led_1);
|
||||
}
|
||||
else
|
||||
{
|
||||
queue_push_back(q_frame_pool, frame);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
uint32_t can_err = can_get_error_status(&hCAN);
|
||||
@ -227,15 +230,15 @@ bool send_to_host_or_enqueue(struct gs_host_frame *frame)
|
||||
|
||||
void send_to_host()
|
||||
{
|
||||
struct gs_host_frame *frame = queue_pop_front(q_to_host);
|
||||
struct gs_host_frame *frame = queue_pop_front(q_to_host);
|
||||
|
||||
if(!frame)
|
||||
return;
|
||||
|
||||
if (USBD_GS_CAN_SendFrame(&hUSB, frame) == USBD_OK) {
|
||||
queue_push_back(q_frame_pool, frame);
|
||||
queue_push_back(q_frame_pool, frame);
|
||||
} else {
|
||||
queue_push_front(q_to_host, frame);
|
||||
queue_push_front(q_to_host, frame);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user