72 lines
1.6 KiB
C
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
|
|
********************************************************/
|