You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

114 lines
3.0 KiB

#include "Time.h"
#include "../app/app_common.h"
#include "../bsp/bsp_config.h"
/*************************初始化定时器0*****************************/
void L0_timer0_Init(void) //50毫秒@11.0592MHz
{
#if(MainFre_11M == D_sys_MainFre)
#if(TYPE_JIFFIES_5MS == D_sys_Jiffies) //5ms@11.0592MHz
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xEE; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
#elif(TYPE_JIFFIES_10MS == D_sys_Jiffies)//10ms@11.0592MHz
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xDC; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
#elif(TYPE_JIFFIES_25MS == D_sys_Jiffies) //25ms@11.0592MHz
xxx
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xA6; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
#endif
ET0 = 1; //add by cc
#elif(MainFre_22M == D_sys_MainFre)
#if(TYPE_JIFFIES_5MS == D_sys_Jiffies)//5毫秒@22.1184MHz
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xDC; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
#elif(TYPE_JIFFIES_10MS == D_sys_Jiffies)//10毫秒@22.1184MHz
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xB8; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
#elif(TYPE_JIFFIES_25MS == D_sys_Jiffies) //25ms@11.0592MHz
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0x4C; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
#endif
ET0 = 1; //add by cc
#endif
}
void L0_timer3_start(U16 value)
{
T4T3M &= ~(0x08); //定时器3停止
T4T3M &= 0xFD; //定时器时钟12T模式
T3L = value; //设置定时初值
T3H = value >> 8; //设置定时初值
T4T3M |= 0x08; //定时器3开始开始
IE2 |= ET3; //开启定时器3中断
}
void L0_timer3_stop(void)
{
T4T3M &= ~(0x08); //定时器3停止
}
void L0_timer4_start(U16 value) //1ms
{
T4T3M &= ~(0x80); //定时器4停止
T4T3M &= 0xDF; //定时器时钟12T模式
T4L = 0xCD; //设置定时初值
T4H = 0xF8; //设置定时初值
T4T3M |= 0x80; //定时器4开始计时
IE2 |= ET4; //开启定时器4中断
}
void L0_timer4_stop(void) //1ms
{
T4T3M &= ~(0x80); //定时器4停止
}
/********************** Timer0中断函数************************/
#if 0 //该函数移入uart2.c
void timer0_isrHanddle (void) interrupt 1
{
NOP();
TF0 = 0;
//tick处理
L1_tick_tick(); ///系统中的1sflag 和以10ms为颗粒的延时使用 为tdelay服务
NOP();
}
#endif
/******************************END*********************************/