2017-2018-1 《信息安全系统设计基础》 20155322 十六周 课上实践
题目
原理
实现
小时设置及提取
#define TIME_Addr 0xFFFFC0000 //实时钟芯片的IO映像基址是OxFFFFC0000
#define TIME *(volatile int *) (TIME_Addr+2) //时间存放在基址+2的寄存器中
void SetHours(int hours)
{
int oldtime = TIME;
int newtime = oldtime & ~ (0x1F << 11);
newtime |= (hours & 0x1F) << 11;
TIME = newtime;
}
int getHours()
{
int time;
time = (time>>11) & 0x1F;
return time;
}
秒的设置及提取
#define TIME_Addr 0xFFFFC0000 //实时钟芯片的IO映像基址是OxFFFFC0000
#define TIME *(volatile int *) (TIME_Addr+2) //时间存放在基址+2的寄存器中
void SetSeconds(int seconds)
{
int oldtime=TIME;
int newtime=oldtime&~0x1F;
newtime|=seconds&0x1F;
TIME=newtime;
}
int getSeconds()
{
int time;
time=time&0x1F;
return time ;
}
原文地址:https://www.cnblogs.com/blackay03/p/8207237.html
时间: 2024-10-02 17:58:32