其他分享
首页 > 其他分享> > 嵌入式基础

嵌入式基础

作者:互联网

要求

代码思路

int getHours()

void SetHours (int hours)

代码

typedef uint16_t u16;  //16位

u16 *time;      
time = OXFFFFC0000 + 2;   //time指针指向该寄存器

struct{                  //定义一个timeOp位域
  unsigned seconds:5,  
  minutes: 6,
  hours: 5;
}timeOp;

timeOp.hours = *time>>11;            //利用time指针将寄存器中的值放至timeOp中
timeOp.minutes = (*time & 0X07E0)>>5;
timeOp.seconds = *time & 0X001F;

/*
* 函数功能:修改寄存器中的Hours部分的值
* 实现方法:修改timeOp位域中hours的值,将位域的值利用time指针,传至寄存器中
*/
void SetHours(int hours)
{
  timeOp.hours = hours;
  *time = (u16)timeOp;  //通过强制转换的方式将值传给time指针,指针将值给寄存器
}

/*
* 函数功能:返回寄存器中hours部分的值
* 实现方法:将timeOp位域中hours的值直接返回即可
*/
int getHours()
{
  return timeOp.hours;
}

标签:Hours,time,基础,嵌入式,hours,timeOp,寄存器,位域
来源: https://www.cnblogs.com/ckx1212-20191308/p/15682204.html