#include "timer.h" #include "led.h" #include "GUI.h" //extern __IO int32_t OS_TimeMS; ////////////////////////////////////////////////////////////////////////////////// // //ALIENTEK STM32F407 // // @ALIENTEK // :www.openedv.com // :2014/5/4 // V1.0 // //Copyright(C) 2014-2024 //All rights reserved ////////////////////////////////////////////////////////////////////////////////// // 3 //arr //psc // Timer calculation formula: Tout=((arr+1)*(psc+1))/Ft us. // Ft = Clock frequency, unit: MHz // 3! void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); /// TIM3 TIM_TimeBaseInitStructure.TIM_Prescaler=psc; // TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; // TIM_TimeBaseInitStructure.TIM_Period=arr; // TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure); TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); // 3 TIM_Cmd(TIM3,ENABLE); // 3 NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; // 3 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; // 1 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; // 3 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); } // 3 void TIM3_IRQHandler(void) { if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) // { //OS_TimeMS++; } TIM_ClearITPendingBit(TIM3,TIM_IT_Update); // } // 4 //arr //psc // Timer calculation formula: Tout=((arr+1)*(psc+1))/Ft us. // Ft = Clock frequency, unit: MHz // 3! void TIM4_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); /// TIM4 TIM_TimeBaseInitStructure.TIM_Prescaler=psc; // TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; // TIM_TimeBaseInitStructure.TIM_Period=arr; // TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure); TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE); // 3 TIM_Cmd(TIM4,ENABLE); // 3 NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn; // 4 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02; // 1 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; // 3 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); } // 4 void TIM4_IRQHandler(void) { if(TIM_GetITStatus(TIM4,TIM_IT_Update)==SET) // { TIM_ClearITPendingBit(TIM4,TIM_IT_Update); // GUI_TOUCH_Exec(); //tp_dev.scan(0); //GUI_TOUCH_StoreUnstable(tp_dev.x[0],tp_dev.y[0]); } }