20155228 2018-01-03 课堂测试:嵌入式基础

20155228 2018-01-03 课堂测试:嵌入式基础

题目和要求

  1. 在作业本上完成附图作业,要认真看题目要求。
  2. 提交作业截图
  3. 作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清零)

分析和设计

根据题意设置基地址和存放时间的寄存器的地址

#define Time_Addr 0xFFFFC0000 //定义基地址
#define Time *(volatile int *)(Time_Addr+2) //时间存放在基址+2的寄存器中

设置小时

寄存器中时间小时的数据放在第11-15位中,需要先清空小时的数据位第11-15位的数据,然后把新的数据放进去

0x1F是0000 0000 0001 1111左移11位得到1111 1000 0000 0000取反得到0000 01111 1111 1111

旧的时间xxxx xxxx xxxx xxxx和0000 01111 1111 1111进行按位与运算得到新的时间0000 0xxx xxxx xxxx

再将需要设定的小时数据左移11位和新的时间进行按位或运算得到新的时间

void SetHours(int hours)
{
    int oldtime=Time;
    int newtime=oldtime&~(0x1F<<11);
    newtime|=(hours&0x1F)<<11;
    Time=newtime;

}

获取小时

寄存器中时间小时的数据放在第11-15位中,需要将小时的数据位第11-15位保留,然后把其他位的数据清空

时间是xxxx xxxx xxxx xxxx右移11位得到0000 000x xxxx


int getHours()
{
    int time=TIME;
    return (time>>11)&0x1F;
}

设置分钟和获取分钟


void SetMinutes(int minutes)
{
    int oldtime=TIME;
    int newtime;
    newtime=oldtime&~(0x3F<<5);//使用0x3F:0000 0011 1111是因为分钟是6位:第5-10位
    newtime|=(minutes&0x3F)<<5;
    TIME=newtime;

}
int getMinutes()
{
    int time=TIME;
    return (time>>5)&0x3F;
}

设置秒和获取秒


void SetSeconds(int seconds)
{
    int oldtime=TIME;
    int newtime;
    newtime=oldtime&~0x1F;
    newtime|=(seconds/2)&0x1F;
    TIME=newtime;

}
int getSeconds()
{
    int time=TIME;
    return (time&0x1F)*2;

原文地址:https://www.cnblogs.com/besti20155228/p/8196670.html

时间: 2024-10-14 03:33:35

20155228 2018-01-03 课堂测试:嵌入式基础的相关文章

20155318 第十六周课堂实践——嵌入式基础

20155318 第十六周课堂实践加分作业 测试中错误部分的理解和学习 根据下图,完成对时分秒的提取和设置 课上提交的答案: 错误原因:没有注意时间变量和地址问题,应在修改为: #define Time_Addr 0xFFFFC0000 //实时钟芯片的IO映像基址是OxFFFFC0000 #define TIME *(volatile int *)(Time_Addr+2) //时间存放在基址+2的寄存器中 int getHours() { int time=TIME; return (tim

软件工程系统开发课堂测试01

这次测试我们尝试的编辑了河北省重大技术需求证据系统,程序需求用户注册,用户登陆,系统主机面,需求征集,浏览需求,需求审核,修改密码等功能,并且需要进行数据库的连接,这些内容大部分在上一学期就有了些许的掌握,但在课堂测试的过程中,我还是只完成了部分功能,我只满足了用户注册,用户登陆,需求征集,修改密码这几个功能,并与数据库正常连接,图形化界面也并没有完成,下面我将展示我的代码. //Dao.java package Dao; import java.sql.Connection; import j

课堂测试1 登录界面

1.网站系统开发需要什么技术 前台photoshop(美工必学的)+dreaweaver(css+div)+javacript,后台php .net  asp 等编程语言,要想做好网站HTML.JAVASCRIPT.CSS.数据库.服务器配置必须要学会. 在网上查了一下,要做好一个网站系统,要学习的技术有很多,简单列举一下: (1)java Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet.JDBC.JavaBean(Application)四部分技术. (

Bentley.STAAD.RCDC.V8i.04.01.01.03 1CD

1.Bentley Multiframe Advanced V8i SS3 17.00.02.10 Win32_64 1CDBentley Multiframe Advanced V8i SS3 17.00.02.10 Win32_64 1CD Multiframe的分析和设计工具给你一个非常强大和灵活的创建.分析和研究结果的结构的手段.Multiframe唯一的一款功能之间使用VBA自动化的结构分析程序.使用自动化,你可... 2.Bentley Utilities Designer V8i

【慕课网】php工程师学习计划之我的学习笔记——01 入门必学web基础 htmlcss基础课程 篇

为了进一步学习PHP,本周我选定了慕课网的PHP工程师学习计划, 从今天2015-07-06 10:24:47开始从头学习:计划本周尽快学习完成本课程,谨此作为笔记. 有个好的学习计划和思路非常非常重要,非常感谢慕课网提供本套学习计划,希望更多地学习平台能提供像这样全面一条龙学习思路清晰地教程. 计划图:链接 我的学习状况:2015-07-06 10:29:46 开始随记: php工程师学习计划笔记——01 入门必学web基础 htmlcss基础课程 篇 入门篇: text-align:cent

2017-2018-1 20155336 《信息安全系统设计基础》第八周课堂测试

2017-2018-1 20155336 <信息安全系统设计基础>第八周课堂测试 1.求命令行传入整数参数的和 参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成"求命令行传入整数参数的和" 测试代码传入自己的8位学号 上方提交代码 附件提交运行测试截图 解答: 编写代码 #include <stdio.h> void main(int argc,char** argv) { int

第一次被要求连接数据库的课堂测试

1.     题目要求 按照图片要求设计添加新课程界面.(0.5分) 在后台数据库中建立相应的表结构存储课程信息.(0.5分) 实现新课程添加的功能. 要求判断任课教师为王建民.刘立嘉.刘丹.王辉.杨子光五位教师的其中一位.(0.5分) 要求上课地点开头为"一教.二教.三教.基教"中的一种.(0.5分) 实现数据存储功能.(3分) 将课堂练习设计思想,源程序代码.运行结果截图的开发过程,并按照PSP0级的要求记录开发过程中的项目计划日志.时间记录日志.缺陷记录日志. 课堂练习的源代码上

20172301 2017-2018-2 《程序设计与数据结构》课堂测试修改报告

20172301 2017-2018-2 <程序设计与数据结构>课堂测试修改报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 郭恺 学号: 20172301 实验教师:王志强老师 测试日期:2018年4月11日 必修/选修: 必修 测试内容 书P241 PP7.4 首先,修改RationalNumber类, 实现 Comparable接口. 然后以0.0001为误差精度进行比较. 编写main驱动方法进行测试. 测试过程及结果 设计思路:我们要想实现Comparable

20172301 2017-2018-2 《程序设计与数据结构》第7周课堂测试修改报告

20172326 <程序设计与数据结构>课堂测试修改报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 康皓越 学号: 20172326 实验教师:王志强老师 测试日期:2018年4月11日 必修/选修: 必修 测试内容 命令行参数测试 要求: 从命令行传入 学号.课程的成绩,计算平均成绩,并输出. 例如:输入 java computeAverage 20172301 98 99 100 输出:2017 2301' average score is :99 测试过程 分析