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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用proteus學(xué)習(xí)ARM(LPC2103)之二:熟悉IAR C語(yǔ)言開發(fā)環(huán)境

          利用proteus學(xué)習(xí)ARM(LPC2103)之二:熟悉IAR C語(yǔ)言開發(fā)環(huán)境

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
          1. 關(guān)于C語(yǔ)言中數(shù)據(jù)類型的長(zhǎng)度問題

          我們應(yīng)該比較熟悉51系列的C語(yǔ)言數(shù)據(jù)類型的長(zhǎng)度,如下表所示:

          本文引用地址:http://www.ex-cimer.com/article/201611/321519.htm

          數(shù)據(jù)類型

          長(zhǎng) 度

          值 域

          unsigned char

          單字節(jié)

          0~255

          signed char

          單字節(jié)

          -128~+127

          unsigned int

          雙字節(jié)

          0~65535

          signed int

          雙字節(jié)

          -32768~+32767

          unsigned long

          四字節(jié)

          0~4294967295

          signed long

          四字節(jié)

          -2147483648~+2147483647

          float

          四字節(jié)

          關(guān)于ARM的C語(yǔ)言數(shù)據(jù)類型的長(zhǎng)度,如下表:

          類型

          數(shù)據(jù)寬度/bytes

          char

          1

          unsigned char

          1

          short

          2

          unsigned short

          2

          int

          4

          unsigned int

          4

          long

          4

          unsigned long

          4

          2. 關(guān)于位變量的定義

          第一:如果只單純的使用位變量,只需要添加#include,然后就可以使用bool進(jìn)行定義;

          第二:但是上面的這種方法有一種不可取的地方,如果需要對(duì)很多位變量同時(shí)賦同一個(gè)值的時(shí)候,需要書寫多條語(yǔ)句,這個(gè)時(shí)候就可以使用下面的這種方法,這里支持32bit,16 bit,8bit同時(shí)定義。

          volatile union { INT8U Flag; __BITS8 Flag_bit; } ;

          #define FlagBit0 Flag_bit.no0

          #define FlagBit1 Flag_bit.no1

          #define FlagBit2 Flag_bit.no2

          #define FlagBit3 Flag_bit.no3

          #define FlagBit4 Flag_bit.no4

          #define FlagBit5 Flag_bit.no5

          #define FlagBit6 Flag_bit.no6

          #define FlagBit7 Flag_bit.no7

          第三:對(duì)寄存器的位操作舉例,在iolpc2103.h的頭文件中,你可以發(fā)現(xiàn)如下的定義:

          typedef struct{

          __REG32 MR0INT : 1;

          __REG32 MR1INT : 1;

          __REG32 MR2INT : 1;

          __REG32 MR3INT : 1;

          __REG32 CR0INT : 1;

          __REG32 CR1INT : 1;

          __REG32 CR2INT : 1;

          __REG32 :25;

          } __ir0_bits;

          __IO_REG32_BIT(T0IR, 0xE0004000,__READ_WRITE,__ir0_bits);

          由上面的定義,可以看出寄存器的位操作可以這樣寫T0IR_bit.MR0INT,同時(shí)我們也可以再次重新定義一下這個(gè)位變量,這樣更利于我們的使用。

          #define ClrMR0Timer0Int() T0IR_bit.MR0INT = 1

          3. 關(guān)于開關(guān)總中斷的內(nèi)部函數(shù)

          IAR中,關(guān)總中斷和開總中斷,有專用的函數(shù)可以調(diào)用,只是需要包含#include就可以直接調(diào)用下面的語(yǔ)句:

          __disable_interrupt();

          __enable_interrupt();

          4. 關(guān)于IAR中頭文件的寫法

          在IAR原來(lái)的版本中,包含iolpc2103.h 文件可以這樣寫:

          #include

          但是我所使用的這個(gè)最新的版本V6.1,卻不能這么寫,這樣會(huì)找不到這個(gè)頭文件,這個(gè)版本需要按照下面的這種方法寫(當(dāng)然應(yīng)該你人為改變iolpc2103.h 文件文件的位置也是可以的):

          #include

          另如果需要將自己的頭文件都放入一個(gè)固定的文件夾中,便于管理的話,你需要將你自己定義的頭文件寫成下面這個(gè)樣子:

          #include"..Headconfig.h"



          評(píng)論


          技術(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); })();