第十六周课堂测试
2018-01-17 13:16
204 查看
第十六周课堂测试
课堂测试在作业本上完成附图作业,要认真看题目要求。
提交作业截图
作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清零)
#define Time_Addr 0xFFFFC0000 //实时钟芯片的IO映像基址是OxFFFFC0000 #define TIME *(volatile int *)(Time_Addr+2) //时间存放在基址+2的寄存器中 int getHours() { int time=TIME; return (time>>11)&0x1F; } void SetHours(int hours) { int oldtime = TIME; int newtime = oldtime & ~ (0x1F << 11);//将小时清零,保留分钟与秒钟 newtime |= (hours & 0x1F) << 11;//设置小时时间 TIME = newtime; } int getHours() { int time = TIME; return (time>>11) & 0x1F; }
提取hour时,采用的方法是先将hour右移11位,hour有5位,所以再与000000000000011111,即0X1F相与。
需要注意的是(volatile unsigned int )0x500函数的运用,其含义是将地址0x500强制转化为int型指针,例如:
*(unsigned int *)0x500=0x10 //对地址为0x500赋值为0x10
课下作业—提取和置位秒
秒的位置在0—4位,不需要进行移位操作,直接与0x1F相与
提取秒:
#define TIME_Addr 0xFFFFC0000 #define TIME *(volatile int *) (TIME_Addr+2)//这里需要将地址+2 int getSeconds() { int time = TIME; return time & 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 & 0x1F; TIME = newtime; }
相关文章推荐
- 第十六周课堂测试补充
- 2017-2018-1 20155315 《信息安全系统设计基础》第二周课堂测试总结
- 2017-2018-1 20155333 课堂测试1
- 20162313苑洪铭 查找练习课堂测试
- 1478 Problem A 总成绩排序(结构体专题)——软四课堂小测试2——2017-12-22
- 排序课堂测试及排序课下作业
- 2017-2018-1 20155315 《信息安全系统设计基础》第八周课堂测试
- 20155321 《信息安全系统设计》课堂测试(ch06)
- 2015539平措卓玛课堂测试(ch06)
- 20155226 mini DC 课堂测试补交
- 20155222卢梓杰 课堂测试ch06补做
- 2017-2018-1 20155228 《信息安全系统设计基础》第二周课堂测试与课后作业
- 20162316刘诚昊 10月9日“查找课堂测试”
- 第四周课堂测试
- 课堂测试-求子数组和最大值
- 数据库课堂测试
- 20162312张家铖 查找课堂测试补分博客
- 马士兵Java课堂笔记-7-键盘事件测试代码
- 第一节 课堂测试
- 20155339 2017-2018-1《信息安全系统设计》第四周课堂测试、Makefile以及myod