📄 subsettime.c
字号:
/*******************************Copyright (c)**********************************
***************************************By Z.Q.Yang****************************/
/******************************************************************************
*文件名:subsettime
*功能:设置时间相关服务函数
*头文件:"user.h","config.h"
*作者:Z.Q.Yang
*******************************************************************************/
#include"config.h"
#include"user.h"
uint8 timeshow; /*用于寻表的常量*/
uint8 day[3]; /*日期缓存*/
uint8 time[3]; /*时间缓存*/
uint8 const *timetab[]={"HOUR","MIN","SEC","YEAR","MONTH","DAY"};/*名字表*/
/******************************************************************************
*函数名:Time
*功能:设置时间的显示函数
*入口参数:无
*出口参数:无
*作者:Z.Q.Yang
*******************************************************************************/
void Time(void)
{
if(subinit!=0)
{
subinit=0; /*初始设定*/
day[0]=9;
day[1]=3;
day[2]=9;
time[0]=12;
time[1]=0;
time[2]=0;
}
GUIClr();
GUIPrintf(0,0,1,"NOW:"); /*显示*/
GUIPrintf(20,0,1,"%d-%d-%d %d-%d-%d",HOUR,MIN,SEC,MONTH,DOM,YEAR);
GUIPrintf(10,20,1,"DAY:%d-%d-%d",day[0]+2000,day[1],day[2]);
GUIPrintf(10,36,1,"TIME:%d-%d-%d",time[0],time[1],time[2]);
GUIPrintf(64,50,1,"PRESS < BACK");
GUIPrintf(10,50,1,"%s",timetab[timeshow]);
LCDRefresh(GUIBuf);
}
/******************************************************************************
*函数名:SubTimeKey
*功能:设置时间的键盘服务函数
*入口参数:i,读取到的键值
*出口参数:无
*作者:Z.Q.Yang
*******************************************************************************/
void SubTimeKey(uint8 i)
{
static uint8 dtflag=0,dayflag=0;
switch(i)
{
case 'b': /*加一键,缓存内容加一*/
{
if(dayflag==0)
{
time[dtflag]+=1;
if(dtflag==0)
{
if(time[dtflag]==24)time[dtflag]=0;
}
else
{
if(time[dtflag]==60)time[dtflag]=0;
}
}
else
{
day[dtflag-3]+=1;
if(dtflag==5)
{
if(day[dtflag-3]==32)day[dtflag-3]=1;
}
else if(dtflag==4)
{
if(day[dtflag-3]==12)day[dtflag-3]=1;
}
}
}break;
case 'c': /*减一键,缓存内容减一*/
{
if(dayflag==0)
{
time[dtflag]-=1;
if(dtflag==0)
{
if(time[dtflag]==0xff)time[dtflag]=23;
}
else
{
if(time[dtflag]==0xff)time[dtflag]=59;
}
}
else
{
day[dtflag-3]-=1;
if(dtflag==5)
{
if(day[dtflag-3]==0x0)day[dtflag-3]=30;
}
else if(dtflag==4)
{
if(day[dtflag-3]==0x0)day[dtflag-3]=11;
}
else if(day[dtflag-3]==0xff)day[dtflag-3]=99;
}
}break;
case 'e': /*》键,修改缓存指向*/
{
dtflag++;
if(dtflag==6)dtflag=0;
if(dtflag>2)dayflag=1;
else dayflag=0;
}break;
case 'd': /*《键,修改缓存指向*/
{
dtflag--;
if(dtflag==0xff)dtflag=5;
if(dtflag>2)dayflag=1;
else dayflag=0;
}break;
case 'f': /*回车键,确定修改时间*/
{
YEAR = 2000+day[0];
MONTH = day[1];
DOM = day[2];
HOUR=time[0];
MIN=time[1];
SEC=time[2];
}break;
case 'h': /*无键按下,返回*/
break;
default: /*数字键,直接赋给变量*/
{
time[dtflag]=i;
}break;
}
timeshow=dtflag; /*跟新寻表常量*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -