forked from ccsens_hardware/stc_ttss_encryption
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.
255 lines
6.4 KiB
255 lines
6.4 KiB
#include "Time.h"
|
|
|
|
/*************初始化定时器0由 stc-isp v6.86L定时器计算器生成******************/
|
|
#if(MainFre_5M == D_sys_MainFre)
|
|
#elif(MainFre_27M == D_sys_MainFre)
|
|
#elif(MainFre_22M == D_sys_MainFre)
|
|
void L0_timer0_Init(void) //25毫秒@22.1184MHz
|
|
{
|
|
AUXR &= 0x7F; //定时器时钟12T模式
|
|
TMOD &= 0xF0; //设置定时器模式
|
|
TL0 = 0x00; //设置定时初值
|
|
TH0 = 0x4C; //设置定时初值
|
|
TF0 = 0; //清除TF0标志
|
|
TR0 = 1; //定时器0开始计时
|
|
ET0 = 1; //add by cc
|
|
}
|
|
|
|
|
|
/********************************************
|
|
void L0_timer0_Init(void) //10毫秒@22.1184MHz
|
|
{
|
|
AUXR &= 0x7F; //定时器时钟12T模式
|
|
TMOD &= 0xF0; //设置定时器模式
|
|
TL0 = 0x00; //设置定时初值
|
|
TH0 = 0xB8; //设置定时初值
|
|
TF0 = 0; //清除TF0标志
|
|
TR0 = 1; //定时器0开始计时
|
|
ET0 = 1; //add by cc
|
|
}
|
|
|
|
void L0_timer0_Init_32k(void) //4fen@32kHz
|
|
{
|
|
AUXR &= 0x7F; //定时器时钟12T模式
|
|
TMOD &= 0xF0; //设置定时器模式
|
|
#if 0
|
|
TL0 = 0x00; //设置定时初值
|
|
TH0 = 0xB8; //设置定时初值/// 4m20s 71
|
|
#else
|
|
TL0 = 0x00; //设置定时初值
|
|
TH0 = 0xcc; //设置定时初值// ff 4s
|
|
|
|
|
|
#endif
|
|
TF0 = 0; //清除TF0标志
|
|
TR0 = 1; //定时器0开始计时
|
|
ET0 = 1; //add by cc
|
|
BITN_0(DR_who_wakeup, DRB_who_wakeup_timer0); /// 标志中断类型: 定时器
|
|
}
|
|
****************************************************/
|
|
|
|
#else ///MainFre_11M
|
|
void L0_timer0_Init(void) //10毫秒@11.0592MHz
|
|
{
|
|
AUXR &= 0x7F; //定时器时钟12T模式
|
|
TMOD &= 0xF0; //设置定时器模式
|
|
TL0 = 0x00; //设置定时初值
|
|
TH0 = 0xDC; //设置定时初值
|
|
TF0 = 0; //清除TF0标志
|
|
TR0 = 1; //定时器0开始计时
|
|
ET0 = 1; //add by cc
|
|
}
|
|
|
|
/********************************************
|
|
void L0_timer0_Init(void) //25毫秒@11.0592MHz
|
|
{
|
|
AUXR &= 0x7F; //定时器时钟12T模式
|
|
TMOD &= 0xF0; //设置定时器模式
|
|
TL0 = 0x00; //设置定时初值
|
|
TH0 = 0xA6; //设置定时初值
|
|
TF0 = 0; //清除TF0标志
|
|
TR0 = 1; //定时器0开始计时
|
|
ET0 = 1; //add by cc
|
|
}
|
|
****************************************************/
|
|
#endif//D_sys_MainFre)
|
|
|
|
//10---87 10s
|
|
/********************** Timer0中断函数************************/
|
|
/// 和 L0_timer0_Init 关联,需要配置 bsp_config.h中的 D_sys_MainFre
|
|
/// 默认10ms 作为TTSS系统的定时引擎
|
|
void timer0_isrHanddle (void) interrupt D_ISR_timer0
|
|
{//
|
|
NOP(); NOP(); NOP();
|
|
TF0 = 0;
|
|
#if 0
|
|
/// 65535*65535 /3600/24/365=139nian/s=1.39nian/10ms
|
|
///相当于1.39年后t_10ms 溢出,对于电池供电的系统而言 完全可以满足
|
|
// 4,294,836,225 = 65535*65535 ;3600*24*60*60 = 31,536,000秒/年
|
|
s_nos_tick.t_10ms ++;//D_led_D1_REV(); 20160522 验证
|
|
|
|
#else
|
|
|
|
L1_tick_tick(); ///系统中的1sflag 和以10ms为颗粒的延时使用 为tdelay服务
|
|
|
|
#endif
|
|
/// BITN_1(DR_who_wakeup, DRB_who_wakeup_timer0);
|
|
NOP(); NOP(); NOP();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if(MainFre_5M == D_sys_MainFre)
|
|
#elif(MainFre_27M == D_sys_MainFre)
|
|
#elif(MainFre_22M == D_sys_MainFre)
|
|
/******************************
|
|
void L0_Timer1_Init(void) //35毫秒@22.1184MHz
|
|
{///自动重载
|
|
AUXR &= 0xFB; //定时器时钟12T模式
|
|
T2L = 0x00; //设置定时初值
|
|
T2H = 0x04; //设置定时初值
|
|
AUXR |= 0x10; //定时器2开始计时
|
|
|
|
BITN_1(IE2, ET2);// IE2 = ET2; //使能定时器中断
|
|
}
|
|
**********************************/
|
|
#else ///MainFre_11M
|
|
|
|
void L0_timer1_Init_7ms(void) //7毫秒@11.0592MHz
|
|
{
|
|
AUXR &= 0xBF; //定时器时钟12T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0xCD; //设置定时初值
|
|
TH1 = 0xE6; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
void L0_timer1_Init_5ms(void) //5毫秒@11.0592MHz
|
|
{//0x7F示波器测试大约40ms,led闪烁 肉眼可见
|
|
AUXR &= 0xBF; //定时器时钟12T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0x00; //设置定时初值
|
|
TH1 = 0xEE; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
void L0_timer1_Init_1ms(void) //1毫秒@11.0592MHz
|
|
{
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0xCD; //设置定时初值
|
|
TH1 = 0xD4; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
void L0_timer1_Init(void) //600微秒@11.0592MHz
|
|
{
|
|
AUXR |= 0x40; //定时器时钟1T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TL1 = 0x14; //设置定时初值
|
|
TH1 = 0xE6; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
TR1 = 1; //定时器1开始计时
|
|
ET1 = 1; //add by cc
|
|
}
|
|
|
|
|
|
//0x7F示波器测试大约40ms,led闪烁 肉眼可见
|
|
void L0_timer1_reset(void)
|
|
{
|
|
TR1 = 0;
|
|
TL1 = 0x14; //设置定时初值
|
|
TH1 = 0xE6; //设置定时初值
|
|
TR1 = 1;
|
|
TF1 = 0;
|
|
}
|
|
|
|
#endif//D_sys_MainFre)
|
|
|
|
|
|
#if 0
|
|
void L0_Timer1Init(void)
|
|
{
|
|
#if 0
|
|
|
|
//30毫秒@22.1184MHz
|
|
AUXR &= 0xBF; //定时器时钟12T模式
|
|
TMOD &= 0x0F; //设置定时器模式
|
|
TMOD |= 0x10; //设置定时器模式
|
|
TL1 = 0x00; //设置定时初值
|
|
TH1 = 0x28; //设置定时初值
|
|
TF1 = 0; //清除TF1标志
|
|
#else
|
|
TMOD = 0x40; //外部计数模式
|
|
TL1 = (0xff-10);
|
|
TH1 = 0xff;
|
|
|
|
|
|
#endif
|
|
// TR1 = 1; //定时器1开始计时
|
|
L0_TIMER1_start();
|
|
//L0_TIMER1_end();
|
|
L0_TIMER1_isr_CLOSE();
|
|
/// ET1 = 1; // add by cc 启动定时器1的中断
|
|
}
|
|
|
|
void L0_timer1_Init(void) //计数器1初始化
|
|
{
|
|
|
|
TMOD = 0x40; //外部计数模式
|
|
TL1 = 0x9c;
|
|
TH1 = 0xff;
|
|
// TR1 = 1; //启动定时器
|
|
ET1 = 1; //使能定时器中断
|
|
// EA = 1;
|
|
}
|
|
#define L0_timer1_on(); TR1 = 1; //启动计数器
|
|
#define L0_timer1_off(); TR1 = 0; //关闭计数器 //启动计数器
|
|
|
|
//10---87 10s
|
|
/********************** Timer0中断函数************************/
|
|
/// 和 L0_timer0_Init 关联,需要配置 bsp_config.h中的 D_sys_MainFre
|
|
/// 默认10ms 作为TTSS系统的定时引擎
|
|
void timer1_inr (void) interrupt 3
|
|
{
|
|
|
|
/*******
|
|
s_task_GC032A.usN ++;
|
|
s_task_GC032A.buf[s_task_GC032A.usN] = P1;
|
|
if(s_task_GC032A.usN < D_row_max)
|
|
{
|
|
|
|
}else
|
|
{
|
|
s_task_GC032A.status = 1;
|
|
}
|
|
// task_handler.line_camera++;
|
|
****************/
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/******************************END*********************************/
|
|
|
|
|
|
|
|
|
|
|