📄 time.c
字号:
/*
**------------------------------------------------------------------------------------------------------
** Modified by: HuangYong
** Modified date: 2008.4.23
** Version: 2.0
** Descriptions: modified for aim-operator
**
********************************************************************************************************/
#include "..\includes\includes.h"
TYPE_TIME timeSystem;
//指令延时程序
void DelayNms(uint16 t)
{ uint16 i;
for (;t>0;t--)
for (i=0;i<500;i++);
}
INT32U loadSystemTime(INT8U type)
{
INT32U time;
switch (type)
{ case TYPE_TIME_MS: break;
case TYPE_TIME_S: break;
case TYPE_TIME_M: break;
case TYPE_TIME_H: break;
case TYPE_TIME_DAY: break;
case TYPE_TIME_DHMS:
time=timeSystem.ms;break;
default: time=0;
}
return (time);
}
void refreshSystemTime(void)
{/*
if (timeSystem.ms>=999)
{ timeSystem.ms=0;
if (timeSystem.s>=59)
{ timeSystem.s=0;
if (timeSystem.m>=59)
{ timeSystem.m=0;
if (timeSystem.h>=23)
{ timeSystem.h=0;
timeSystem.day+=1;
}
else timeSystem.h+=1;
}
else timeSystem.m+=1;
}
else timeSystem.s+=1;
}
else */
timeSystem.ms+=1;
}
void systimeInit(void)
{
timeSystem.ms=0;
//timeSystem.s=0;
//timeSystem.m=0;
//timeSystem.h=0;
//timeSystem.day=0;
}
#define _TMR1_VALUE (65536-1000)
void timer1Init(void)
{
T1CON=0x00;
TMR1L =_TMR1_VALUE;
TMR1H =_TMR1_VALUE>>8;
TMR1IF=0;
TMR1IE=1;
PEIE=1;
}
/*
多任务分时调度
1,键盘扫描任务每隔10ms运行
*/
void OS_SCHEDULE(void)
{ INT32U time;
time=loadSystemTime(TYPE_TIME_DHMS);
if (time>=keyCtlBlock.nTime)
{ keyCtlBlock.nTime=time+10;
userKeyScan();
}
}
/*
*********************************************************************************************************
** 函数名称 :IRQ_Timer0()
** 函数功能 :定时器0中断服务程序,取反LED9控制口。
** 入口参数 :无
** 出口参数 :无
*********************************************************************************************************
*/
void interrupt irqTimer1(void)
{
if (TMR1IE&TMR1IF)
{ TMR1IF=0;
timer1Stop();
TMR1L=_TMR1_VALUE;
TMR1H=_TMR1_VALUE>>8;
timer1Start();
refreshSystemTime();
}
if(RCIE&RCIF)
{
RCIE=0;
IRQ_UART1();
RCIF=0;
RCIE=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -