2017-2018-1 20155326信息安全系统设计基础》嵌入式C语言课上考试补交

PPT上的例子

  • 已知位运算规则为:

      &0 --> 清零
    &1 --> 不变
    |1 --> 置1
    |0 --> 不变
  • getMinutes部分

由于Seconds是0-5位,因此先右移5位将Minutes的最低位与位0对齐,再与上0000 0000 0011 1111,即0x3F,可将6-15位全部清0,获得minuts部分。

  • SetMinutes部分

  • 代码如下:

#define Time_Addr 0xFFFFC0000 //实时钟芯片的IO映像基址是OxFFFFC0000
#define TIME *(volatile int *)(Time_Addr+2) //时间存放在基址+2的寄存器中
void SetMinutes(int minutes) //插入Minutes
{
int oldtime=TIME;
int newtime;
newtime=oldtime&~(0x3F<<5);
newtime|=(minutes&0x3F)<<5;
TIME=newtime;
}
int getMinutes() //取出Minutes
{
int time=TIME;
return (time>>5)&0x3F;
}

课上习题

由于seconds和minutes占0-10位,要提取hours,则先将hour右移11位,hour有5位,再与上000000000000011111,即0X1F。

  • sethours部分

void setHours(int hours){
int oldtime=TIME;
newtime|=(oldtime&0X1F)<<11;
TIME=newtime;
}
  • getHours部分

int gethours()
{
int time;
time=TIME;
return (time>>11&0X1F);
}
  • 代码如下:

#define Time_Addr 0XFFFFC0000
#define TIME *(volatile int*) (Time+2)
int gethours()
{
int time;
time=TIME;
return (time>>11&0X1F);
} void sethours(int hours){
int oldtime=TIME;
newtime|=(oldtime&0X1F)<<11;
TIME=newtime; }

课下扩展

由于second在最右部分,所以不用左移,只需与上000000000000011111,即0X1F。

  • 代码如下:

#define TIME_Addr 0xFFFFC0000
#define TIME *(volatile int *) (TIME_Addr+2)//这里需要将地址+2 void SetSeconds(int seconds)
{
int oldtime = TIME;
int newtime = oldtime & ~ 0x1F;
newtime |= (seconds/2) & 0x1F;
TIME = newtime;
} int getSeconds()
{
int time = TIME;
return (time & 0x1F)*2;//此处不考虑Seconds除2带来的误差,因此直接乘2
}

2017-2018-1 20155326信息安全系统设计基础》嵌入式C语言课上考试补交的更多相关文章

  1. 20155308《信息安全系统设计基础 嵌入式C语言课堂考试补博客

    20155308<信息安全系统设计基础 嵌入式C语言课堂考试补博客 知识点 置位 ?bits = bits | (1 << 7) ; /* sets bit 7 */ bits |= ...

  2. 2017-2018-1 20155318 《信息安全系统设计基础》第九周课下实践——实现mypwd

    2017-2018-1 20155318 <信息安全系统设计基础>第九周课下实践--实现mypwd 相关知识 man -k 查找含有关键字的内容 与管道命令结合使用:man -k k1 | ...

  3. 2017-2018-1 20155327 《信息安全系统设计基础》课堂测试&课下作业

    2017-2018-1 20155327 <信息安全系统设计基础>课堂测试&课下作业 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep ...

  4. 20145234黄斐《信息安全系统设计基础》第七周(Linux命令复习)

    已经到了11月,学期过半,而<信息安全系统设计基础>这门课也要到了期中考试了.所以,我在这里,对前半个学期的最基础的知识,做一个复习 复习计划分为两步,本次为Linux命令,下次计划复习g ...

  5. 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验

    20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...

  6. 20145208《信息安全系统设计基础》实验五 简单嵌入式WEB 服务器实验

    20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验 20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验

  7. 20145210 20145226 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验

    20145210 20145226 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 结对伙伴:20145226 夏艺华 实验报告封面 实验目的与要求 · 掌握在ARM开发板实现 ...

  8. 20145221 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验

    20145221 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 实验报告 队友博客:20145326蔡馨熠 实验博客:<信息安全系统设计基础>实验五 简单嵌入式W ...

  9. 20145303 20145339 《信息安全系统设计基础》 实验五 简单嵌入式WEB服务器实验

    20145303 20145339 <信息安全系统设计基础> 实验五 简单嵌入式WEB服务器实验 实验目的与要求 1.掌握在ARM开发板实现一个简单WEB服务器的过程 2.学习在ARM开发 ...

随机推荐

  1. 经典技术之URL

    SpringBoot入门 (十) 发送邮件 图表算法—最短路径 三个好用的并发工具类 跨应用Session共享: https://www.cnblogs.com/websharing/p/849586 ...

  2. 性能测试day04_性能监控

    好了,今天接着来学习性能,在今天开始前,我今天在网上又看到了理发师经典模型,这里稍微提一下,详情可以百度哈,下面这张图是网上找到的经典场景性能相关的图,大致说明下: 这张图中展示的是1个标准的软件性能 ...

  3. 有一个VC的bug:非标准语法

    ---恢复内容开始--- 主函数中调用类的成员函数时报错: “error C3867:非标准语法:请使用 "&" 来创建指向成员的指针” 这时在函数前老老实实加上& ...

  4. VS2010 Chart控件(一)Chart控件在ASP.NET网站中的应用示例详解(C#语言)

    步骤如下: 1. Chart控件(一)Chart控件在ASP.NET网站中的应用示例详解(C#语言)" title="VS2010 Chart控件(一)Chart控件在ASP.NE ...

  5. pyspider示例代码:解析JSON数据

    pyspider示例代码官方网站是http://demo.pyspider.org/.上面的示例代码太多,无从下手.因此本人找出一下比较经典的示例进行简单讲解,希望对新手有一些帮助. 示例说明: py ...

  6. cacti的介绍、安装、配置、及维护

    一.cacti的介绍 Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.它通过snmpget来获取数据,使用 R ...

  7. 20175314 《Java程序设计》第二周学习总结

    20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...

  8. CentOS7使用ZFS文件系统

    默认情况下,CentOS7并没有含ZFS支持的文件和,需要进行更新和安装第三方库. Step 1:安装第三方库和更新系统 [root@localhost ~]# rpm -Uvh http://www ...

  9. FortiGate设置E-mail告警

    1.配置邮件服务器 2.配置告警

  10. [leetcode]243. Shortest Word Distance最短单词距离

    Given a list of words and two words word1 and word2, return the shortest distance between these two ...