/* * Timer0.c * * Created on: 2022年03月15日 * Author: User */ /* Includes ------------------------------------------------------------------*/ #include /* Private define-------------------------------------------------------------*/ /* Private variables----------------------------------------------------------*/ /* Private function prototypes------------------------------------------------*/ static void Timer0_Init(void); //定时器0初始化 /* Public variables-----------------------------------------------------------*/ Timer0_t Timer0 = { 0, Timer0_Init}; /* * @name Timer0_Init * @brief 定时器0初始化 * @param None * @retval None */ static void Timer0_Init() // 5微秒@20.000MHz { AUXR |= 0x80; //定时器时钟1T模式 TMOD &= 0xF0; //设置定时器模式 TL0 = 0x9C; //设置定时初始值 TH0 = 0xFF; //设置定时初始值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 ET0 = 1; //打开定时器0中断 EA = 1; //打开总中断 } /* * @name Timer0_isr() * @brief 定时器0中断函数(5us中断一次) * @param None * @retval None */ /***********定时器0中断函数***********/ void Timer0_isr() interrupt 1 { if (PWM.High == Timer0.usMCU_Run_Timer) { FAN_PWM_PIN = LOW; } Timer0.usMCU_Run_Timer++; if (Timer0.usMCU_Run_Timer >= TIMER0_500uS) { if (PWM.High != 0) { FAN_PWM_PIN = HIGH; } else { FAN_PWM_PIN = LOW; } Timer0.usMCU_Run_Timer = 0; } } /******************************************************** End Of File ********************************************************/