1 | virtual void setup()
|
2 | {
|
3 | LL_TIM_InitTypeDef TIM_InitStruct = { 0 };
|
4 | LL_GPIO_InitTypeDef GPIO_InitStruct = { 0 };
|
5 |
|
6 | /* Peripheral clock enable */
|
7 | LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM1);
|
8 | LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
|
9 |
|
10 | /*TIM1 GPIO Configuration PA8 ------> TIM1_CH1 */
|
11 | GPIO_InitStruct.Pin = LL_GPIO_PIN_8;
|
12 | GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING; //genreated by CubeMX
|
13 | //TEST via external GND signal
|
14 | //GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT;
|
15 | //GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
|
16 | LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
17 |
|
18 | /*Timer Capture */
|
19 | TIM_InitStruct.Prescaler = 5;
|
20 | TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
|
21 | TIM_InitStruct.Autoreload = 0xFFFF;
|
22 | TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
|
23 | TIM_InitStruct.RepetitionCounter = 0;
|
24 | LL_TIM_Init(TIM1, &TIM_InitStruct);
|
25 | LL_TIM_EnableARRPreload(TIM1);
|
26 | LL_TIM_SetClockSource(TIM1, LL_TIM_CLOCKSOURCE_INTERNAL);
|
27 | LL_TIM_SetTriggerOutput(TIM1, LL_TIM_TRGO_RESET);
|
28 | LL_TIM_DisableMasterSlaveMode(TIM1);
|
29 | LL_TIM_IC_SetActiveInput(TIM1, LL_TIM_CHANNEL_CH1, LL_TIM_ACTIVEINPUT_DIRECTTI);
|
30 | LL_TIM_IC_SetPrescaler(TIM1, LL_TIM_CHANNEL_CH1, LL_TIM_ICPSC_DIV1);
|
31 | LL_TIM_IC_SetFilter(TIM1, LL_TIM_CHANNEL_CH1, LL_TIM_IC_FILTER_FDIV1);
|
32 | LL_TIM_IC_SetPolarity(TIM1, LL_TIM_CHANNEL_CH1, LL_TIM_IC_POLARITY_FALLING);
|
33 | }
|
34 |
|
35 | virtual void start()
|
36 | {
|
37 | NVIC_EnableIRQ(TIM1_CC_IRQn);
|
38 | NVIC_EnableIRQ(TIM1_UP_IRQn);
|
39 |
|
40 | LL_TIM_ClearFlag_UPDATE(TIM1);
|
41 | LL_TIM_EnableIT_UPDATE(TIM1);
|
42 | LL_TIM_ClearFlag_CC1(TIM1);
|
43 | LL_TIM_EnableIT_CC1(TIM1);
|
44 |
|
45 | LL_TIM_EnableCounter(TIM1);
|
46 | }
|
47 |
|
48 | extern "C" void TIM1_CC_IRQHandler()
|
49 | {
|
50 | LL_TIM_ClearFlag_CC1(TIM1);
|
51 | }
|
52 |
|
53 | extern "C" void TIM1_UP_IRQHandler()
|
54 | {
|
55 | LL_TIM_ClearFlag_UPDATE(TIM1);
|
56 | }
|