zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155205 嵌入式C语言——时钟

    2017-2018-1 20155205 嵌入式C语言——时钟

    题目要求

    基础知识

    • 插入位(以分钟为例)

    • 提取位(以分钟为例)

    • 在提取分钟时,运用到了位运算,位运算有以下规律:
    &0 --> 清零
    &1 --> 不变
    |1 --> 置1
    |0 --> 不变
    
    • 秒占了五位,故将时间右移5位,这时我们要将它提取出来,故要将每位&1,即&0x3F。

    问题解答

    • 设置、提取小时:原理和设置、提取分钟一样,只不过这里的0X3F变为0X1F,因为小时只有五位。
    #define TIME_Addr  0xFFFFC0000
    #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 = newtime;
    }
    
    int getHours()
    {
        int time = TIME;
        return (time>>11) & 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;
    }
    
    int getSeconds()
    {
        int time = TIME;
        return time & 0x1F;
    }
    
  • 相关阅读:
    对象数组深拷贝
    百度地图 轨迹
    vant mp-vue
    Nginx代理webSocket时60s自动断开, 怎么保持长连接
    python_传递任意数量的实参
    python_函数传递列表
    python_形参、实参
    python_函数、局部变量与全局变量
    python_三级字典
    python_字典的使用
  • 原文地址:https://www.cnblogs.com/haoliberale/p/8184387.html
Copyright © 2011-2022 走看看