3 #include <libopencm3/cm3/nvic.h>
4 #include <libopencm3/cm3/systick.h>
5 #include <libopencm3/stm32/rcc.h>
6 #include <libopencm3/stm32/gpio.h>
11 typedef unsigned int uint;
13 static void clock_setup(void)
15 rcc_clock_setup_in_hse_8mhz_out_72mhz();
17 rcc_periph_clock_enable(RCC_GPIOC);
20 static void gpio_setup(void)
22 gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO13);
25 static volatile u32 ms_ticks;
27 void sys_tick_handler(void)
32 static void tick_setup(void)
34 systick_set_frequency(1000, 72000000);
35 systick_counter_enable();
36 systick_interrupt_enable();
39 static void delay_ms(uint ms)
41 u32 start_ticks = ms_ticks;
42 while (ms_ticks - start_ticks < ms)
52 /* Blink the LED (PC13) on the board. */
54 gpio_toggle(GPIOC, GPIO13); /* LED on/off */