⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subsettime.c

📁 一个arm7实例
💻 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 + -