forked from ccsens_hardware/stc_touch_pen
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
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*********************************/
|
|
|
|
|
|
|