/* 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');
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);
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)