2017-2018-1 20155306 《信息安全系统设计基础》嵌入式C语言———提取设置时分秒
2017-2018-1 20155306 《信息安全系统设计基础》嵌入式C语言———提取设置时分秒
要求:根据下图,完成对时分秒的设置和提取。

示例及思路分析:


思路分析:以分钟为例,根据位运算的规则,设置分钟,只需要将寄存器中分钟对应的5-10bit清零,再进行赋值即可。即按位与上0x3F左移5位的取反结果,再按位或上所赋分钟值按位与上0x3F并左移5位的结果,最后赋值给寄存器即可。
提取分钟,只需要将寄存器中分钟对应的5-10bit右移5位至0-5bit,再将0-5bit的值提取出来即可。即将右移5位,再与上0x3F的结果返回即可。
同样地,提取时钟、秒钟的思路也是如此。其中,需要注意两个问题:1.时钟和秒钟所占位均为5bit,需要灵活调整0x3F为0x1F;2.0-4bit是秒钟除以2的结果,再设置提取的编程实现时需要注意。
代码实现:
设置时
#define TIME_Addr 0xFFFFC000
#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 = time;//改变时间寄存器的值
}
提取时
#define TIME_Addr 0xFFFFC000
#define TIME *(volatile int *)(TIME_Addr+2)//这里需要将地址+2
int getHours()
{
int time = TIME;
return (time >> 11) & 0x1F;
}
设置分
#define TIME_Addr 0xFFFFC000
#define TIME *(volatile int *)(TIME_Addr+2)//这里需要将地址+2
void SetMinutes(int minutes)
{
int oldtime = TIME;
int newtime = oldtime & ~ (0x3F << 5);//将分钟清零,保留时钟与秒钟
newtime | = (minutes & 0x3F) << 5;//设置分钟时间
TIME = newtime;//改变时间寄存器的值
}
提取分
#define TIME_Addr 0xFFFFC000
#define TIME *(volatile int *)(TIME_Addr+2)//这里需要将地址+2
int getMinutes()
{
int time = TIME;
return (time >> 5) & 0x3F;
}
设置秒
#define TIME_Addr 0xFFFFC000
#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;//改变时间寄存器的值
}
提取秒
#define TIME_Addr 0xFFFFC000
#define TIME *(volatile int *)(TIME_Addr+2)//这里需要将地址+2
int getSeconds()
{
int time = TIME;
return (time & 0x1F) * 2; //此处不考虑Seconds除2带来的误差,因此直接乘2
}
2017-2018-1 20155306 《信息安全系统设计基础》嵌入式C语言———提取设置时分秒的更多相关文章
- 20155308《信息安全系统设计基础 嵌入式C语言课堂考试补博客
20155308<信息安全系统设计基础 嵌入式C语言课堂考试补博客 知识点 置位 ?bits = bits | (1 << 7) ; /* sets bit 7 */ bits |= ...
- 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 20155306 《信息安全系统设计基础》Mybash的实现
2017-2018-1 20155306 <信息安全系统设计基础>Mybash的实现 要求: 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解 ...
- 2017-2018-1 20155326信息安全系统设计基础》嵌入式C语言课上考试补交
2017-2018-1 20155326信息安全系统设计基础>嵌入式C语言课上考试补交 PPT上的例子 已知位运算规则为: &0 --> 清零 &1 --> 不变 | ...
- 20145213《信息安全系统设计基础》实验一 Linux开发环境的配置
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号:20145213 20145222 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...
随机推荐
- 009_svn配置多仓库与权限控制(Alpha)
1,配置多仓库 实际项目中,我们会同时开发多个项目,通过SVNserve进行仓库监管,但是监管命令只能同时监管一个文件夹,而不能同时监管多个仓库. 解决方法: 可以通过监管总目录来监管所有仓库 SVN ...
- apache2.2+php5.3+mysql5.5+Zend Guard Loader集成包
由前一篇文章 http://www.cnblogs.com/darktime/p/3407980.html 我就配置了一个环境包,免安装的,只需要运行一个.bat的文件文件就算安装成功了 如果你需要用 ...
- String使用equals和==比较的区别
"==" 操作符的作用: 1.用于基本数据类型的比较 2.判断引用是否指向堆内存的同一块地址. equals的作用: 用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相 ...
- PowerShell管理SCOM_批量设置维护模式(下)
#定义存储需要置为维护模式的计算机名称列表$serverlist = "C:\scomm\servers.txt"#定义RMS服务器名称$rmsServerName=”scomw. ...
- Django 错误之 No module named ‘MySQLdb’
由于卸载Mysql时将很多相关依赖包都卸载了,重装mysql后启动django出现如下错误: django.core.exceptions.ImproperlyConfigured:Error loa ...
- 一个查询ip地址的mysql数据库--ip2nation
http://ip2nation.com/ip2nation/Sample_Scripts/Country_Based_Redirect 并且已经集成进了laravel:https://github. ...
- Java 处理cookie的方法
一.java创建cookie 方法一: Response.Cookies["userName"].Value = "patrick"; Response.Coo ...
- tomcat6 集群配置
1. 概要 web容器在做集群配置时,有3点需要注意: 1.1. 负载均衡配置: 1.2. session共享: 1.3. 若做的是单机集群(多个tomcat安装在同一台机器上),需要注意端口冲突问题 ...
- 1297. [SCOI2009]迷路【矩阵乘法】
Description windy在有向图中迷路了. 该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1. 现在给出该有向图,你能告诉windy总共有多少种不同 ...
- 1055. [HAOI2008]玩具取名【区间DP】
Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后 他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替, ...