您的位置 首页 知识

使用proteus学习ARM(LPC2103)之二:了解IAR C言语开发环境

1关于C语言中数据类型的长度问题我们应该比较熟悉51系列的C语言数据类型的长度,如下表所示:数据类型长度值域unsignedchar单字节

1. 关于C言语中数据类型的长度问题

咱们应该比较了解51系列的C言语数据类型的长度,如下表所示:

数据类型

长 度

值 域

unsigned char

单字节

0~255

signed char

单字节

-128~+127

unsigned int

双字节

0~65535

signed int

双字节

-32768~+32767

unsigned long

四字节

0~4294967295

signed long

四字节

-2147483648~+2147483647

float

四字节

关于ARM的C言语数据类型的长度,如下表:

类型

数据宽度/bytes

char

1

unsigned char

1

short

2

unsigned short

2

int

4

unsigned int

4

long

4

unsigned long

4

2. 关于位变量的界说

榜首:假如只单纯的运用位变量,只需求增加#include,然后就能够运用bool进行界说;

第二:可是上面的这种办法有一种不可取的当地,假如需求对很多位变量一起赋同一个值的时分,需求书写多条句子,这个时分就能够运用下面的这种办法,这儿支撑32bit,16 bit,8bit一起界说。

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

第三:对寄存器的位操作举例,在iolpc2103.h的头文件中,你能够发现如下的界说:

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,一起咱们也能够再次从头界说一下这个位变量,这样更利于咱们的运用。

#define ClrMR0Timer0Int() T0IR_bit.MR0INT = 1

3. 关于开关总中止的内部函数

IAR中,关总中止和开总中止,有专用的函数能够调用,仅仅需求包括#include就能够直接调用下面的句子:

__disable_interrupt();

__enable_interrupt();

4. 关于IAR中头文件的写法

在IAR本来的版别中,包括iolpc2103.h 文件能够这样写:

#include

可是我所运用的这个最新的版别V6.1,却不能这么写,这样会找不到这个头文件,这个版别需求依照下面的这种办法写(当然应该你人为改动iolpc2103.h 文件文件的方位也是能够的):

#include

另假如需求将自己的头文件都放入一个固定的文件夹中,便于管理的话,你需求将你自己界说的头文件写成下面这个姿态:

#include”..Headconfig.h”

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/259682.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部