📄 main.c
字号:
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (80,48,(uint32)r[13]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
case 6 :
{
GUI_PutNumberQF (88,16,(uint32)r[6]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (96,16,(uint32)r[7]);
GUI_PutXQ (72,32,(uint32)r[8]);
GUI_PutNumber (32,48,(uint32)r[9]);
GUI_PutNumber (40,48,(uint32)r[10]);
GUI_PutNumber (56,48,(uint32)r[11]);
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (80,48,(uint32)r[13]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
case 7 :
{
GUI_PutNumberQF (96,16,(uint32)r[7]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (88,16,(uint32)r[6]);
GUI_PutXQ (72,32,(uint32)r[8]);
GUI_PutNumber (32,48,(uint32)r[9]);
GUI_PutNumber (40,48,(uint32)r[10]);
GUI_PutNumber (56,48,(uint32)r[11]);
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (80,48,(uint32)r[13]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
case 8 :
{
GUI_PutXQQF (72,32,(uint32)r[8]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (88,16,(uint32)r[6]);
GUI_PutNumber (96,16,(uint32)r[7]);
GUI_PutNumber (32,48,(uint32)r[9]);
GUI_PutNumber (40,48,(uint32)r[10]);
GUI_PutNumber (56,48,(uint32)r[11]);
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (80,48,(uint32)r[13]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
case 9 :
{
GUI_PutNumberQF (32,48,(uint32)r[9]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (88,16,(uint32)r[6]);
GUI_PutNumber (96,16,(uint32)r[7]);
GUI_PutXQ (72,32,(uint32)r[8]);
GUI_PutNumber (40,48,(uint32)r[10]);
GUI_PutNumber (56,48,(uint32)r[11]);
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (80,48,(uint32)r[13]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
case 10 :
{
GUI_PutNumberQF (40,48,(uint32)r[10]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (88,16,(uint32)r[6]);
GUI_PutNumber (96,16,(uint32)r[7]);
GUI_PutXQ (72,32,(uint32)r[8]);
GUI_PutNumber (32,48,(uint32)r[9]);
GUI_PutNumber (56,48,(uint32)r[11]);
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (80,48,(uint32)r[13]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
case 11 :
{
GUI_PutNumberQF (56,48,(uint32)r[11]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (88,16,(uint32)r[6]);
GUI_PutNumber (96,16,(uint32)r[7]);
GUI_PutXQ (72,32,(uint32)r[8]);
GUI_PutNumber (32,48,(uint32)r[9]);
GUI_PutNumber (40,48,(uint32)r[10]);
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (80,48,(uint32)r[13]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
case 12 :
{
GUI_PutNumberQF (64,48,(uint32)r[12]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (88,16,(uint32)r[6]);
GUI_PutNumber (96,16,(uint32)r[7]);
GUI_PutXQ (72,32,(uint32)r[8]);
GUI_PutNumber (32,48,(uint32)r[9]);
GUI_PutNumber (40,48,(uint32)r[10]);
GUI_PutNumber (56,48,(uint32)r[11]);
GUI_PutNumber (80,48,(uint32)r[13]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
case 13 :
{
GUI_PutNumberQF (80,48,(uint32)r[13]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (88,16,(uint32)r[6]);
GUI_PutNumber (96,16,(uint32)r[7]);
GUI_PutXQ (72,32,(uint32)r[8]);
GUI_PutNumber (32,48,(uint32)r[9]);
GUI_PutNumber (40,48,(uint32)r[10]);
GUI_PutNumber (56,48,(uint32)r[11]);
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (88,48,(uint32)r[14]);
break;
}
default :
{
GUI_PutNumberQF (88,48,(uint32)r[14]);
GUI_PutNumber (8 ,16,(uint32)r[0]);
GUI_PutNumber (16,16,(uint32)r[1]);
GUI_PutNumber (24,16,(uint32)r[2]);
GUI_PutNumber (32,16,(uint32)r[3]);
GUI_PutNumber (56,16,(uint32)r[4]);
GUI_PutNumber (64,16,(uint32)r[5]);
GUI_PutNumber (88,16,(uint32)r[6]);
GUI_PutNumber (96,16,(uint32)r[7]);
GUI_PutXQ (72,32,(uint32)r[8]);
GUI_PutNumber (32,48,(uint32)r[9]);
GUI_PutNumber (40,48,(uint32)r[10]);
GUI_PutNumber (56,48,(uint32)r[11]);
GUI_PutNumber (64,48,(uint32)r[12]);
GUI_PutNumber (80,48,(uint32)r[13]);
break;
}
}
}
/*******************************************************************************************************
**函数名称:RTCReset()
**函数功能:重新设置实时时钟
**入口参数:无
**出口参数:无
********************************************************************************************************
*/
void RTCReset (void)
{
//int a=0;
uint32 datas;
uint32 times;
uint32 bak;
// extern int r[]={2,0,0,8,0,7,2,7,0,0,8,3,0,0,0};
times = CTIME0; // 读取完整的时钟寄存器
datas = CTIME1;
bak = (datas >> 16) & 0xfff; // 获取 年
r[0] = bak / 1000;
bak = bak % 1000;
r[1] = bak / 100;
bak = bak % 100;
r[2] = bak / 10;
r[3] = bak % 10;
bak = (datas >> 8) & 0x0f; // 获取 月
r[4] = bak / 10;
r[5] = bak % 10;
bak = datas & 0x1f; // 获取 日
r[6] = bak / 10;
r[7] = bak % 10;
bak = (times >> 24) & 0x07; // 获取 星期
r[8] = bak;
bak = (times >> 16) & 0x1f; // 获取 小时
r[9] = bak / 10;
r[10] = bak % 10;
bak = (times >> 8) & 0x3f; // 获取 分钟
r[11] = bak / 10;
r[12] = bak % 10;
bak = times & 0x3f; // 获取 秒钟
r[13]= bak / 10;
r[14]= bak % 10;
while((IO0PIN&MAKESURE))
{
DelayNS(1);
display(i);
if((IO0PIN&MOVE)==0)
{
DelayNS(1);
if((IO0PIN&MOVE)==0)
{
i++;
protect();
display(i);
}
}
if((IO0PIN&ADDONE)==0)
{
DelayNS(1);
if((IO0PIN&ADDONE)==0)
{
r[i]+=1;
protect();
display(i);
}
}
}
year=r[0]*1000+r[1]*100+r[2]*10+r[3];
month=r[4]*10+r[5];
dom=r[6]*10+r[7];
dow=r[8];
hour=r[9]*10+r[10];
min=r[11]*10+r[12];
sec=r[13]*10+r[14];
YEAR = year;
MONTH = month;
DOM = dom;
DOW = dow;
HOUR = hour;
MIN = min;
SEC = sec;
// CIIR = 0x01; // 设置秒值的增量产生1次中断
CCR = 0x01; // 启动RTC
}
/*
*******************************************************************************************************
** 函数名称 :RTCInit()
** 函数功能 :初始化实时时钟
** 入口参数 :无
** 出口参数 :无
*******************************************************************************************************
*/
void RTCInit (void)
{
PREINT = Fpclk / 32768 - 1; // 设置基准时钟分频器
PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
CCR = 0x00; // 禁止时间计数器
/*
year=r[0]*1000+r[1]*100+r[2]*10+r[3];
month=r[4]*10+r[5];
dom=r[6]*10+r[7];
dow=r[8];
hour=r[9]*10+r[10];
min=r[11]*10+r[12];
sec=r[13]*10+r[14];
*/
YEAR = year;
MONTH = month;
DOM = dom;
DOW = dow;
HOUR = hour;
MIN = min;
SEC = sec;
// CIIR = 0x01; // 设置秒值的增量产生1次中断
CCR = 0x01; // 启动RTC
}
/*
*******************************************************************************************************
** 函数名称 :main()
** 函数功能 :读取实时时钟的值,通过液晶显示。
*******************************************************************************************************
*/
int main (void)
{
GUI_Initialize(); // 初始化LCM
GUI_SetColor(1, 0); // 设置前景色和背景色
RTCInit(); //RTC初始化
while (1)
{
// RTCInit();
// CCR = 0x01; // 启动RTC
// while (0 == (ILR & 0x01)); // 等待RTC增量中断
// ILR = 0x01; // 清除中断标志
SendTimeRtc();
if((TIMERESET&IO0PIN) == 0)
{
CCR = 0x00; // 禁止时间计数器
RTCReset();
}
}
return 0;
}
/***********************************************************************************************************
***
***
***
************************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -