2017-2018-1 20155326信息安全系统设计基础》嵌入式C语言课上考试补交
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语言课上考试补交的更多相关文章
- 20155308《信息安全系统设计基础 嵌入式C语言课堂考试补博客
20155308<信息安全系统设计基础 嵌入式C语言课堂考试补博客 知识点 置位 ?bits = bits | (1 << 7) ; /* sets bit 7 */ bits |= ...
- 2017-2018-1 20155318 《信息安全系统设计基础》第九周课下实践——实现mypwd
2017-2018-1 20155318 <信息安全系统设计基础>第九周课下实践--实现mypwd 相关知识 man -k 查找含有关键字的内容 与管道命令结合使用:man -k k1 | ...
- 2017-2018-1 20155327 《信息安全系统设计基础》课堂测试&课下作业
2017-2018-1 20155327 <信息安全系统设计基础>课堂测试&课下作业 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep ...
- 20145234黄斐《信息安全系统设计基础》第七周(Linux命令复习)
已经到了11月,学期过半,而<信息安全系统设计基础>这门课也要到了期中考试了.所以,我在这里,对前半个学期的最基础的知识,做一个复习 复习计划分为两步,本次为Linux命令,下次计划复习g ...
- 20145216 20145330 《信息安全系统设计基础》 实验五 简单嵌入式WEB 服务器实验
20145216 20145330 <信息安全系统设计基础> 实验五 简单嵌入式WEB 服务器实验 实验报告封面 实验步骤 1.阅读理解源码 进入/arm2410cl/exp/basic/ ...
- 20145208《信息安全系统设计基础》实验五 简单嵌入式WEB 服务器实验
20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验 20145208<信息安全系统设计基础>实验五 简单嵌入式WEB 服务器实验
- 20145210 20145226 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验
20145210 20145226 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 结对伙伴:20145226 夏艺华 实验报告封面 实验目的与要求 · 掌握在ARM开发板实现 ...
- 20145221 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验
20145221 <信息安全系统设计基础>实验五 简单嵌入式WEB服务器实验 实验报告 队友博客:20145326蔡馨熠 实验博客:<信息安全系统设计基础>实验五 简单嵌入式W ...
- 20145303 20145339 《信息安全系统设计基础》 实验五 简单嵌入式WEB服务器实验
20145303 20145339 <信息安全系统设计基础> 实验五 简单嵌入式WEB服务器实验 实验目的与要求 1.掌握在ARM开发板实现一个简单WEB服务器的过程 2.学习在ARM开发 ...
随机推荐
- linux如何复制文件夹和移动文件夹
linux下文件的复制.移动与删除命令为:cp,mv,rm一.文件复制命令cp 命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)cp [option ...
- js的快速搜索
公司这几天项目很紧张,然后一直有各种乱七八糟的事,突然说要整个搜索的功能,第一时间想到的就是用php的模糊搜索,但是性能耗的很大,并且调取出的数据的速度贼慢,在百度上找到一个通过js来搜索的功能分享给 ...
- git 第一次提交代码
git init git add README.md git commit -m "first commit" git remote add origin https://git. ...
- Maven私服(Nexus)资源上传下载
1.settings.xml (向私服上传资源需要) <!-- Snapshot包的管理/Releases包的管理/第三方包管理--> <server> <id>l ...
- 《面向对象程序设计(Java)》第四周学习总结
第一部分 第四章部分理论知识 1.面向对象程序设计概述:java是完全面向对象的,必须熟悉OOP才能编写java程序. 类:由类构造对象的过程称为创建类的实例. 封装:封装是将数据和行为组合在一个包中 ...
- 深度学习原理与框架-猫狗图像识别-卷积神经网络(代码) 1.cv2.resize(图片压缩) 2..get_shape()[1:4].num_elements(获得最后三维度之和) 3.saver.save(训练参数的保存) 4.tf.train.import_meta_graph(加载模型结构) 5.saver.restore(训练参数载入)
1.cv2.resize(image, (image_size, image_size), 0, 0, cv2.INTER_LINEAR) 参数说明:image表示输入图片,image_size表示变 ...
- java.util.logging jdk日志详解
jdk自带的日志,结构并不复杂,功能也能满足绝大部分功能.日志写入位置是开放的,只要继承了handler都可以接收日志的写入.handler本身依赖于LogRecord对象,该对象代表一个日志.Han ...
- mui之上拉刷新和mui-content结合解决ios上拉不回弹的bug
打电话.发短信 https://blog.csdn.net/itguangit/article/details/78210770
- Numpy三维数组的转置与交换轴
二维数组的转置应该都知道,就是行列交换 而在numpy中也可以对三维数组进行转置,np.T 默认进行的操作是将0轴与2轴交换 本文主要对三位数组轴交换的理解上发表本人的看法. a = np.array ...
- 微信小程序和微信公众号的id是一个吗
首先,简单说下我遇到的问题是我们的程序调用微信小程序得到openid,然后通过openID得到用户的唯一标识,用户得以登录,然而,当我们调用微信公众号也同样的到openid,同一以用户两个不同的ope ...