rfdn: add systick

This commit is contained in:
Harald Welte 2021-03-28 12:16:21 +02:00
parent 9c3d5c0ee2
commit 77eda9fcb7
2 changed files with 30 additions and 1 deletions

View File

@ -12,7 +12,7 @@
static const struct attenuator_cfg *g_att_cfg;
static struct attenuator_state **g_att_state;
static void delay()
static void delay(void)
{
volatile uint32_t i;
for (i = 0; i < 10000; i++) { }

View File

@ -20,10 +20,39 @@
#include <libopencm3/stm32/rcc.h>
#include <libopencm3/stm32/gpio.h>
#include <libopencm3/stm32/usart.h>
#include <libopencm3/stm32/i2c.h>
#include <libopencm3/cm3/nvic.h>
#include <libopencm3/cm3/systick.h>
#include "attenuator.h"
#include "misc.h"
volatile uint32_t jiffies;
void sys_tick_handler(void)
{
jiffies++;
}
/* busy wait specified number of ms */
void msleep(uint32_t delay)
{
uint32_t wake = jiffies + delay;
do {
} while (wake > jiffies);
}
static void clock_setup(void)
{
rcc_clock_setup_in_hsi_out_48mhz();
/* HCLK=48MHz; ADC=6MHz; APB1=24MHz; APB2=48MHz; USB=48MHz */
/* tick rate of 1ms */
systick_set_reload(48000);
systick_set_clocksource(STK_CSR_CLKSOURCE_AHB);
systick_counter_enable();
systick_interrupt_enable();
/* Enable GPIOC clock. */
rcc_periph_clock_enable(RCC_GPIOA);