X-Git-Url: https://git.sommitrealweird.co.uk/barbilliards.git/blobdiff_plain/a2707754a28862d91ba00981753b40bfd832fa78..1cf308c7a4fbd55e5e94c1c12fb6719f29394cb5:/src/timer.c diff --git a/src/timer.c b/src/timer.c index db8b8bb..73283f4 100644 --- a/src/timer.c +++ b/src/timer.c @@ -47,10 +47,13 @@ void sys_tick_handler(void) { /* calculate remaining seconds to print out on the serial port, only do this every 1000 millis or so */ if (n_millis_loops >= 4) { - char seconds_remaining[5]; - sprintf(seconds_remaining, "%d", (int)((game_time - n_millis_total) / 1000)); - for (int i = 0; i < 4; i++) { - cdcacm_putchar(seconds_remaining[i]); + char time_remaining[6]; + uint32_t seconds_remaining = (uint32_t)((game_time - n_millis_total) / 1000); + int minutes = (int)(seconds_remaining / 60); + int seconds = (int)(seconds_remaining % 60); + sprintf(time_remaining, "%02d:%02d", minutes, seconds); + for (int i = 0; i < 5; i++) { + cdcacm_putchar(time_remaining[i]); } cdcacm_putchar('\r'); cdcacm_putchar('\n'); @@ -71,6 +74,9 @@ static void clock_setup(void) { rcc_clock_setup_in_hse_8mhz_out_72mhz(); rcc_periph_clock_enable(RCC_GPIOA); rcc_periph_clock_enable(RCC_GPIOC); + rcc_periph_clock_enable(RCC_AFIO); + + AFIO_MAPR |= AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_ON; /* 72MHz / 8 => 9000000 counts per second */ systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); @@ -87,11 +93,6 @@ static void gpio_setup(void) { gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO13); gpio_set(GPIOC, GPIO13); - - // Pull up the USB D+ line for reset - gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, - GPIO_CNF_OUTPUT_OPENDRAIN, GPIO12); - gpio_clear(GPIOA, GPIO12); } int main(void)