add 7-segment display
This commit is contained in:
parent
f1168608c7
commit
ddaa619e97
|
@ -47,6 +47,7 @@
|
||||||
#include "usb_cdcacm.h" // USB CDC ACM utilities
|
#include "usb_cdcacm.h" // USB CDC ACM utilities
|
||||||
#include "terminal.h" // handle the terminal interface
|
#include "terminal.h" // handle the terminal interface
|
||||||
#include "menu.h" // menu utilities
|
#include "menu.h" // menu utilities
|
||||||
|
#include "led_tm1637.h" // 7-segment display
|
||||||
|
|
||||||
/** watchdog period in ms */
|
/** watchdog period in ms */
|
||||||
#define WATCHDOG_PERIOD 10000
|
#define WATCHDOG_PERIOD 10000
|
||||||
|
@ -341,7 +342,7 @@ void main(void)
|
||||||
uart_setup(); // setup USART (for printing)
|
uart_setup(); // setup USART (for printing)
|
||||||
#endif
|
#endif
|
||||||
usb_cdcacm_setup(); // setup USB CDC ACM (for printing)
|
usb_cdcacm_setup(); // setup USB CDC ACM (for printing)
|
||||||
puts("\nwelcome to the CuVoodoo STM32F1 example application\n"); // print welcome message
|
puts("\nwelcome to the CuVoodoo sound lever meter display\n"); // print welcome message
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
// show reset cause
|
// show reset cause
|
||||||
|
@ -394,6 +395,14 @@ void main(void)
|
||||||
time_start = rtc_get_counter_val(); // get start time from internal RTC
|
time_start = rtc_get_counter_val(); // get start time from internal RTC
|
||||||
puts("OK\n");
|
puts("OK\n");
|
||||||
|
|
||||||
|
// setup display
|
||||||
|
printf("setup 7-segment display: ");
|
||||||
|
led_tm1637_setup();
|
||||||
|
led_tm1637_brightness(LED_TM1637_14DIV16);
|
||||||
|
led_tm1637_time(88, 88);
|
||||||
|
led_tm1637_on();
|
||||||
|
printf("OK\n");
|
||||||
|
|
||||||
// setup terminal
|
// setup terminal
|
||||||
terminal_prefix = ""; // set default prefix
|
terminal_prefix = ""; // set default prefix
|
||||||
terminal_process = &process_command; // set central function to process commands
|
terminal_process = &process_command; // set central function to process commands
|
||||||
|
@ -410,18 +419,13 @@ void main(void)
|
||||||
char c = user_input_get(); // store receive character
|
char c = user_input_get(); // store receive character
|
||||||
terminal_send(c); // send received character to terminal
|
terminal_send(c); // send received character to terminal
|
||||||
}
|
}
|
||||||
if (button_flag) { // user pressed button
|
|
||||||
action = true; // action has been performed
|
|
||||||
puts("button pressed\n");
|
|
||||||
led_toggle(); // toggle LED
|
|
||||||
sleep_ms(100); // wait a bit to remove noise and double trigger
|
|
||||||
button_flag = false; // reset flag
|
|
||||||
}
|
|
||||||
if (rtc_internal_tick_flag) { // the internal RTC ticked
|
if (rtc_internal_tick_flag) { // the internal RTC ticked
|
||||||
rtc_internal_tick_flag = false; // reset flag
|
rtc_internal_tick_flag = false; // reset flag
|
||||||
action = true; // action has been performed
|
action = true; // action has been performed
|
||||||
if (0 == (rtc_get_counter_val() % RTC_TICKS_SECOND)) { // one seond has passed
|
if (0 == (rtc_get_counter_val() % RTC_TICKS_SECOND)) { // one second has passed
|
||||||
led_toggle(); // toggle LED (good to indicate if main function is stuck)
|
led_toggle(); // toggle LED (good to indicate if main function is stuck)
|
||||||
|
uint32_t seconds = rtc_get_counter_val() / RTC_TICKS_SECOND; // get number of seconds
|
||||||
|
led_tm1637_time(seconds / 60, seconds % 60); // display time
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (action) { // go to sleep if nothing had to be done, else recheck for activity
|
if (action) { // go to sleep if nothing had to be done, else recheck for activity
|
||||||
|
|
Loading…
Reference in New Issue