diff options
Diffstat (limited to 'third_party/TouchSense/STMTouch_Driver')
-rw-r--r-- | third_party/TouchSense/STMTouch_Driver/src/tsl_time_stm32f0xx.c | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/third_party/TouchSense/STMTouch_Driver/src/tsl_time_stm32f0xx.c b/third_party/TouchSense/STMTouch_Driver/src/tsl_time_stm32f0xx.c index 4db154a..d8390d4 100644 --- a/third_party/TouchSense/STMTouch_Driver/src/tsl_time_stm32f0xx.c +++ b/third_party/TouchSense/STMTouch_Driver/src/tsl_time_stm32f0xx.c @@ -44,22 +44,12 @@ */ TSL_Status_enum_T TSL_tim_Init(void) { - // Program one systick interrupt every (1 / TSLPRM_TICK_FREQ) ms -// if (SysTick_Config(SystemCoreClock / TSLPRM_TICK_FREQ)) -// { -// return TSL_STATUS_ERROR; -// } -// else -// { -// return TSL_STATUS_OK; -// } - NVIC_InitTypeDef NVIC_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; - + /* TouchSense_TIMx clock enable */ TS_RCC_APBxPeriphClockCmd ( TS_TIM_RCC, ENABLE ); - + /* Enable the TouchSense_TIMx gloabal Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = TS_TIM_IRQx; NVIC_InitStructure.NVIC_IRQChannelPriority = 1; @@ -69,38 +59,38 @@ TSL_Status_enum_T TSL_tim_Init(void) /* ----------------------------------------------------------------------- In this example TIM7 counter clock (TIM7CLK) is set to APB1 clock (PCLK1), since APB1 prescaler is set to 1 and TIM7 prescaler is set to 0. - - In this example TIM7 input clock (TIM7CLK) is set to APB1 clock (PCLK1), - since APB1 prescaler is set to 1. + + In this example TIM7 input clock (TIM7CLK) is set to APB1 clock (PCLK1), + since APB1 prescaler is set to 1. TIM7CLK = PCLK1 = HCLK = SystemCoreClock - + With Prescaler set to 479 and Period to 24999, the TIM7 counter is updated each 250 ms (i.e. and interrupt is generated each 250 ms) TIM7 counter clock = TIM7CLK /((Prescaler + 1)*(Period + 1)) = 48 MHz / ((25000)*(480)) - = 4 Hz + = 4 Hz ==> TIM7 counter period = 250 ms Note: SystemCoreClock variable holds HCLK frequency and is defined in system_stm32f0xx.c file. Each time the core clock (HCLK) changes, user had to call SystemCoreClockUpdate() function to update SystemCoreClock variable value. Otherwise, any configuration - based on this variable will be incorrect. - ----------------------------------------------------------------------- */ - + based on this variable will be incorrect. + ----------------------------------------------------------------------- */ + /* Time base configuration */ - TIM_TimeBaseStructure.TIM_Period = 1000; // Это миксросекунды //24999 + TIM_TimeBaseStructure.TIM_Period = 1000; // Рто миксросекунды //24999 TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock/1000000)-1; //479; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit ( TS_TIMx, &TIM_TimeBaseStructure ); - + /* TouchSense_TIMx Interrupts enable */ TIM_ITConfig ( TS_TIMx, TIM_IT_Update, ENABLE ); - + /* TouchSense_TIMx enable counter */ TIM_Cmd ( TS_TIMx, ENABLE ); - + return TSL_STATUS_OK; } |