<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 關(guān)于頭文件的進一步理解基于PIC單片機

          關(guān)于頭文件的進一步理解基于PIC單片機

          作者: 時間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          一:關(guān)于處理器的寄存器定義
          針對處理器的寄存器定義文件是一個匯編文件,包含特定器件上所有特殊功能寄存器的定義。編譯時,針對處理器的寄存器定義文件將被編譯成需要鏈接到應(yīng)用程序的目標文件 。
          例如,在 PIC18C452 針對處理器的寄存器定義文件中, PORTA 定義為:
          SFR_UNBANKED0 UDATA_ACS Hf80
          PORTA
          PORTAbits RES 1 ; 0xf80
          第一行指定 PORTA 所在的數(shù)據(jù)寄存器存儲區(qū)和這個存儲區(qū)的起始地址。 PORTA 有兩個標號, PORTAbits 和 PORTA,都指向同一個地址 (本例中是 0xf80)。
          二:關(guān)于頭文件聲明
          針對處理器的頭文件是包含特殊功能寄存器外部聲明的 C 文件,特殊功能寄存器在寄存器定義文件中定義。
          例如,在PIC18C452 的針對處理器頭文件中, PORTA 聲明為:
          extern volatile near unsigned char PORTA;
          和:
          extern volatile near union {
          struct {
          unsigned RA0:1;
          unsigned RA1:1;
          unsigned RA2:1;
          unsigned RA3:1;
          unsigned RA4:1;
          unsigned RA5:1;
          unsigned RA6:1;
          } ;
          struct {
          unsigned AN0:1;
          unsigned AN1:1;
          unsigned AN2:1;
          unsigned AN3:1;
          unsigned T0CKI:1;
          unsigned SS:1;
          unsigned OSC2:1;
          } ;
          struct {
          unsigned :2;//填充前兩位
          unsigned VREFM:1;
          unsigned VREFP:1;
          unsigned :1;//此位被填充
          unsigned AN4:1;
          unsigned CLKOUT:1;
          } ;
          struct {
          unsigned :5;//填充前五位
          unsigned LVDIN:1;
          } ;
          } PORTAbits ;
          第一個聲明指定 PORTA 是一個字節(jié) (unsigned char)。由于變量是在寄存器定義文件中定義的,因此需要 extern 修飾符。 volatile 修飾符告知編譯器不能假定 PORTA 能保留賦給它的值。 near 修飾符指定了端口位于存取 RAM 中。第二個聲明指定 PORTAbits是可位尋址的匿名結(jié)構(gòu)的聯(lián)合 。特殊功能寄存器中的每一位可能有不只一種功能 (因此會有不只一個名稱),因此聯(lián)合中對于同一個寄存器有多個結(jié)構(gòu)定義。所有結(jié)構(gòu)定義中的各位分別針對寄存器中相同的位。如果一個位只有一個功能,那么在其它結(jié)構(gòu)定義中,這一位只是被填充。例如,在第三和第四個結(jié)構(gòu)中, PORTA 的第 1 位 和第 2 位只是被填充,因為它們只有兩個名稱;而第 6 位有四個名稱,在每個結(jié)構(gòu)中都指定了第 6 位。


          關(guān)鍵詞: 頭文件PIC單片

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();