zoukankan      html  css  js  c++  java
  • 【课堂实践】嵌入式基础

    实验内容

    实验思路

    1. 用uint16_t型(16位)指针time指向该16位寄存器,作为读取和修改寄存器值的通道;
    2. 定义一个名为timeOp的位域,结构如下,存储从寄存器中读取的值,修改操作在该位域上进行,修改后的值返回至寄存器中。

    实验代码

    typedef uint16_t u16;  //16位
    
    u16 *time;      
    time = OXFFFFC0000 + 2;   //time指针指向该寄存器
    
    struct{                  //定义一个timeOp位域
        unsigned seconds:5,  
        minutes: 6,
        hours: 5;
    }timeOp;
    
    timeOp.hours = *time>>11;            //利用time指针将寄存器中的值放至timeOp中
    timeOp.minutes = (*time & 0X07E0)>>5;
    timeOp.seconds = *time & 0X001F;
    
    /*
     * 函数功能:修改寄存器中的Hours部分的值
     * 实现方法:修改timeOp位域中hours的值,将位域的值利用time指针,传至寄存器中
     */
    void SetHours(int hours)
    {
        timeOp.hours = hours;
        *time = (u16)timeOp;  //通过强制转换的方式将值传给time指针,指针将值给寄存器
    }
    
    /*
     * 函数功能:返回寄存器中hours部分的值
     * 实现方法:将timeOp位域中hours的值直接返回即可
     */
    int getHours()
    {
        return timeOp.hours;
    }
    

    附加

    同理,对于寄存器中minutes、seconds的修改和读取,也可用同样的方法进行操作,函数如下:

    minutes
    /*
     * 函数功能:修改寄存器中的Minutes部分的值
     * 实现方法:修改timeOp位域中Minutes的值,将位域的值利用time指针,传至寄存器中
     */
    void SetMinutes(int minutes)
    {
        timeOp.mintutes = minutes;
        *time = (u16)timeOp;  //通过强制转换的方式将值传给time指针,指针将值给寄存器
    }
    
    /*
     * 函数功能:返回寄存器中Minutes部分的值
     * 实现方法:将timeOp位域中minutes的值直接返回即可
     */
    int getMinutes()
    {
        return timeOp.minutes;
    }
    
    
    seconds
    /*
     * 函数功能:修改寄存器中的Seconds部分的值
     * 实现方法:修改timeOp位域中seconds的值,将位域的值利用time指针,传至寄存器中
     */
    void SetSeconds(int seconds)
    {
        timeOp.seconds = seconds/2;
        *time = (u16)timeOp;  //通过强制转换的方式将值传给time指针,指针将值给寄存器
    }
    
    /*
     * 函数功能:返回寄存器中Seconds部分的值
     * 实现方法:将timeOp位域中seconds的值X2返回即可
     */
    int getSeconds()
    {
        return timeOp.seconds*2;
    }
    
    
  • 相关阅读:
    js原始数据类型和引用数据类型=>callback数据传输原理
    wamp虚拟服务器
    chrome 跨域设置-(完善博客内容)
    js原生API----查找dom
    正则表达式
    ajax ----进度条的原理
    ajax 原理----初级篇
    转载 webstrom识别 React语法
    javascript性能优化
    JavaScript DOM
  • 原文地址:https://www.cnblogs.com/protectmonarch/p/8182653.html
Copyright © 2011-2022 走看看