新聞中心

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

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

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

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

本文引用地址:http://butianyuan.cn/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í)候,需要書(shū)寫(xiě)多條語(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);

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

#define ClrMR0Timer0Int() T0IR_bit.MR0INT = 1

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

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

__disable_interrupt();

__enable_interrupt();

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

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

#include

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

#include

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

#include"..Headconfig.h"



評(píng)論


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

關(guān)閉