中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AVR單片機I/O寄存器的C語言源程序及剖析詳解

        AVR單片機I/O寄存器的C語言源程序及剖析詳解

        作者: 時間:2016-11-30 來源:網(wǎng)絡 收藏
        I/O寄存器C語言源程序及剖析

          在ICCAVR中訪問0x00~0x3f的寄存器空間,可以使用內(nèi)匯編和預處理宏。一個數(shù)據(jù)內(nèi)存地址可以通過加指針類型符號直接訪問。

        本文引用地址:http://www.antipu.com.cn/article/201611/323654.htm

        例如,SREG寄存器的地址是0x5f,對它的訪問操作:

        unsigned char c;

        c=*(volatile unsigned char *)0x5f;//讀取SREG寄存器

          *(volatile unsigned char *)0x5f|=0x80;//打開全局中斷允許位

         提示:數(shù)據(jù)內(nèi)存地址0x00~0x31指向CPU通用寄存器R0~R31,不能隨意修改它們的地址(或者輸入錯誤的地址),否則可能會造成致命的錯誤。

          ICCAVR C在io*v.h文件中用define偽指令給大部分的寄存器定義了指針形式符號,如定義SREG:#define SREG *(volatile unsigned char *)0x5f

        上面對SREG的操作也可以改為:

          unsigned char c;

        c=SREG;//讀取SREG寄存器

        SREG|=0X80;//打開全局中斷允許位

        說明:

           1.在ICCAVR中對I/O寄存器進行操作,編譯器自動生成用于訪問I/O寄存器的專用指令,如IN、OUT、BSET、BCLR等,而且已將地址0X5F變換為0x3f。

           2.#define語句也可以定義絕對內(nèi)存空間,用以指向一個固定地址的字節(jié),如:#define LED_OUT *(volatile unsigned char *)0x80aa



        評論


        技術專區(qū)

        關閉