220V_Controller/App/Timer0.c
2022-07-23 18:08:23 +08:00

72 lines
1.6 KiB
C

/*
* Timer0.c
*
* Created on: 2022年03月15日
* Author: User
*/
/* Includes ------------------------------------------------------------------*/
#include <main.h>
/* 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
********************************************************/