#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*********************************/