2017-2018-1 20155315 《信息安全系统设计基础》嵌入式C语言测试
Hours
要求

伪代码
- 提取Hours
- 提取时间地址
时间存放在(基址+2)的16位寄存器中,定义一个时间宏存放地址。
#define Time_Addr 0xFFFFC0000
#define TIME *(volatile int *) (Time_Addr+2)
- 根据结构图,Hours占5位,其地址与时间地址的偏移量为11,因此提取数值的时候将原数值右移11位。
time>>11
- 右移后将数值与0x1F(00011111),将数值的低五位提取出来,也就是Hours
(time>>11)&0x1F
- 设置Hours
- 将原Hours置0
newtime = oldtime & ~(0x1F<<11);
- 将Hours左移11位,其他位为0,这样将左移后的Hours或上一步的时间后,就将Hours设置到新的时间中
newtime =newtime | ((hours&0x1F)<<11);
代码实现
#define Time_Addr 0xFFFFC0000
#define TIME *(volatile int *) (Time_Addr+2)
int gethours()
{
int time = TIME;
return (time>>11)&0x1F;
}
void sethours(int hours)
{
int oldtime = TIME;
int newtime = oldtime & ~(0x1F<<11);
newtime =newtime | ((hours&0x1F)<<11);
TIME=newtime;
}
minutes
#define Time_Addr 0xFFFFC0000
#define TIME *(volatile int *) (Time_Addr+2)
int getminutes()
{
int time = TIME;
return (time>>5)&0x3F;
}
void setminutes(int minutes)
{
int oldtime = TIME;
int newtime = oldtime & ~(0x3F<<5);
newtime =newtime | ((minutes&0x3F)<<5);
TIME=newtime;
}
seconds
#define Time_Addr 0xFFFFC0000
#define TIME *(volatile int *) (Time_Addr+2)
int getseconds()
{
int time = TIME;
return time&0x1F;
}
void setseconds(int hours)
{
int oldtime = TIME;
int newtime = oldtime & ~0x1F;
newtime =newtime | (seconds&0x1F);
TIME=newtime;
}
总结
2017-2018-1 20155315 《信息安全系统设计基础》嵌入式C语言测试的更多相关文章
- 20155308《信息安全系统设计基础 嵌入式C语言课堂考试补博客
20155308<信息安全系统设计基础 嵌入式C语言课堂考试补博客 知识点 置位 ?bits = bits | (1 << 7) ; /* sets bit 7 */ bits |= ...
- 20155217 《信息安全系统设计基础》week16课堂测试
20155217 <信息安全系统设计基础>week16课堂测试 在作业本上完成附图作业,要认真看题目要求并提交作业截图. 在set的过程中,我们需要将hour部分进行赋值,赋值我们采用&q ...
- 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开发 ...
- 2017-2018-1 20155326信息安全系统设计基础》嵌入式C语言课上考试补交
2017-2018-1 20155326信息安全系统设计基础>嵌入式C语言课上考试补交 PPT上的例子 已知位运算规则为: &0 --> 清零 &1 --> 不变 | ...
- 2017-2018-1 20155306 《信息安全系统设计基础》嵌入式C语言———提取设置时分秒
2017-2018-1 20155306 <信息安全系统设计基础>嵌入式C语言---提取设置时分秒 要求:根据下图,完成对时分秒的设置和提取. 示例及思路分析: 思路分析:以分钟为例,根据 ...
- 20145213《信息安全系统设计基础》实验一 Linux开发环境的配置
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号:20145213 20145222 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...
随机推荐
- windows 命令行报错:file(s) not in client view
今天在执行p4 sync命令时报错:File(s) not in client view,查找后发现其实是未连接上p4服务器.需要重新设置P4PORT=服务器地址 即可解决(参考链接:https:/ ...
- springboot学习入门之五---开发Web应用之JSP篇
转载:http://tengj.top/2017/03/13/springboot5/ 1整体结构 整体的框架结构,跟前面介绍Thymeleaf的时候差不多,只是多了webapp这个用来存放jsp的目 ...
- Angular-学习。
今天刚学了点关于Angular的知识,就迫不及待的想跟大家来分享. 1.angular.extend ( )方法可以把一个或多个对象中的方法和属性扩展到一个目的对象中. <script typ ...
- win7 下安装oracle 10 g
首先下对版本,Oracle 10g支持Win7版: http://download.oracle.com/otn/nt/oracle10g/10203/10203_vista_w2k8_x86_pro ...
- 拟牛顿 DFP matlab
function sevnn x=[1,0]'; [x,val]=dfp('fun','gfun',x) end function f=fun(x) f=100*(x(1)^2-x(2))^2+(x( ...
- 深入浅出TFS——创建WorkItem
使用场景:在项目交付流程当中,我们在准备部署项目的时候,比如需要依次部署到DEV.QA和PROD共3个不同的环境.我们需要由专门负责部署的部门Integration Team的人员来操作.这个时候我们 ...
- HTML、jsp页面中radio,checkbox,select数据回显功能,默认被选中问题
最近常常遇到各种复选框.单选框.下拉框的默认被选中的问题,开始也是绞尽脑汁的想办法,今天写一篇学习总结的博文来写一下学习总结. 单选框(radio)默认被选中: 一.jstl技术进行回显 <in ...
- 一个查询ip地址的mysql数据库--ip2nation
http://ip2nation.com/ip2nation/Sample_Scripts/Country_Based_Redirect 并且已经集成进了laravel:https://github. ...
- 【译文】InnoDB 的不同的SQL如何加锁
http://dev.mysql.com/doc/refman/5.6/en/innodb-locks-set.html 前置:检索如果用不到索引,会扫描全表,并根据策略加锁.所以,这就是我们合理建立 ...
- 【问题记录】python 函数 传入一个对象返回一个对象值得注意
写了一个函数,这个函数接收一个参数,在函数里面判断这个参数是否为None或者不合法状态, 如果处于不合法状态,则创建一个对象返回, 如果合法直接返回 代码示例如下: def get_mq_connec ...