]> mj.ucw.cz Git - home-hw.git/commitdiff
BSB: RX LED
authorMartin Mares <mj@ucw.cz>
Tue, 25 Feb 2020 20:17:19 +0000 (21:17 +0100)
committerMartin Mares <mj@ucw.cz>
Tue, 25 Feb 2020 20:17:19 +0000 (21:17 +0100)
bsb/firmware/main.c

index 06b49ffd8ec569542c63dd0cb12955713799d8a5..e7237e1cf5101cc6f7fdb8b269a34fa5c2773e8e 100644 (file)
@@ -108,6 +108,7 @@ static volatile u32 bsb_rx_timestamp;
 // Passing received frames to the main loop
 static byte bsb_rx_frame[BSB_MAX_SIZE];
 static volatile byte bsb_rx_frame_len;
+static byte bsb_rx_frame_led;
 
 struct bsb_stat {
        u32 rx_noise;
@@ -152,6 +153,8 @@ void usart3_isr(void)
                                        memcpy(bsb_rx_frame, bsb_rx_buf, bsb_rx_buf[3]);
                                        barrier();
                                        bsb_rx_frame_len = bsb_rx_buf[3];
+                                       bsb_rx_frame_led = 100;
+                                       gpio_clear(GPIOB, GPIO1);
                                }
                        }
                }
@@ -444,6 +447,10 @@ int main(void)
                        bsb_rx_len = 0;
                        bsb_stat.rx_timeouts++;
                }
+               if (bsb_rx_frame_led) {
+                       if (!--bsb_rx_frame_led)
+                               gpio_set(GPIOB, GPIO1);
+               }
                cm_enable_interrupts();
 
                wait_for_interrupt();