33 #include "platform-conf.h"
37 #include "dev/watchdog.h"
39 #include "stm32l1xx.h"
40 #include "stm32l1xx_hal_gpio.h"
41 #include "stm32l1xx_hal_rcc.h"
42 #include "stm32l1xx_hal_tim.h"
43 #include "stm32l1xx_hal_cortex.h"
46 volatile uint32_t rtimer_clock = 0uL;
48 st_lib_tim_handle_typedef htim2;
51 st_lib_tim2_irq_handler(
void)
54 st_lib_hal_tim_clear_it(&htim2, TIM_IT_UPDATE);
62 st_lib_tim_clock_config_typedef s_clock_source_config;
63 st_lib_tim_oc_init_typedef s_config_oc;
65 st_lib_tim2_clk_enable();
66 htim2.Instance = TIM2;
67 htim2.Init.Prescaler = PRESCALER;
68 htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
69 htim2.Init.Period = 1;
71 st_lib_hal_tim_base_init(&htim2);
72 st_lib_hal_tim_base_start_it(&htim2);
74 s_clock_source_config.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
75 st_lib_hal_tim_config_clock_source(&htim2, &s_clock_source_config);
77 st_lib_hal_tim_oc_init(&htim2);
79 s_config_oc.OCMode = TIM_OCMODE_TIMING;
80 s_config_oc.Pulse = 0;
81 s_config_oc.OCPolarity = TIM_OCPOLARITY_HIGH;
82 st_lib_hal_tim_oc_config_channel(&htim2, &s_config_oc, TIM_CHANNEL_1);
84 st_lib_hal_tim_clear_flag(&htim2, TIM_FLAG_UPDATE);
87 st_lib_hal_tim_enable_it(&htim2, TIM_IT_UPDATE);
89 st_lib_hal_tim_enable(&htim2);
91 st_lib_hal_nvic_set_priority((st_lib_irq_n_type)TIM2_IRQn, 0, 0);
92 st_lib_hal_nvic_enable_irq((st_lib_irq_n_type)(TIM2_IRQn));
Header file for the real-time timer module.
Header file for the STM32Cube HAL APIs.
rtimer_clock_t rtimer_arch_now()
Returns the current real-time clock time.
void rtimer_arch_init(void)
We don't need to explicitly initialise anything but this routine is required by the API...
Header file for the Contiki process interface.
void rtimer_arch_schedule(rtimer_clock_t t)
Schedules an rtimer task to be triggered at time t.