您的位置:首页单片机PIC单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

在PICC中使用常数指针

[日期:2008-01-19 ] [来源:老古开发网 作者:] [字体: (投递新闻)

在PIC中使用常数指针  
  
  常数指针使用非常灵活,可以给编程带来很多便利。

我测试过,PICC也支持常数指针,并且也会自动分页,实在是一大喜事。

定义一个指向8位RAM数据的常数指针(起始为0x00):

#define DBYTE ((unsigned char volatile *) 0)

定义一个指向16位RAM数据的常数指针(起始为0x00):

#define CWORD ((unsigned int volatile *) 0)

 

((unsigned char volatile *) 0)中的0表示指向RAM区域的起始地址,可以灵活修改它。

DBYTE[x]中的x表示偏移量。

下面是一段代码1:

char a1,a2,a3,a4;

#define DBYTE ((unsigned char volatile *) 0)

void main(void){
 long cc=0x89abcdef;
 a1=DBYTE[0x24];
 a2=DBYTE[0x25];
 a3=DBYTE[0x26];
 a4=DBYTE[0x27];
 while(1);
}

2:

char a1,a2,a3,a4;

#define DBYTE ((unsigned char volatile *) 0)

void pp(char y){
 a1=DBYTE[y++];
 a2=DBYTE[y++];
 a3=DBYTE[y++];
 a4=DBYTE[y];
}


void main(void){
 long cc=0x89abcdef;
 char x;
 x=&cc;
 pp(x);

 while(1);
}

3:

char a1,a2,a3,a4;

#define DBYTE ((unsigned char volatile *) 0)

void pp(char y){
 a1=DBYTE[y++];
 a2=DBYTE[y++];
 a3=DBYTE[y++];
 a4=DBYTE[y];
}


void main(void){
 bank1 static long cc=0x89abcdef;
 char x;
 x=&cc;
 pp(x);
 while(1);
}

 

阅读:
录入:tina1981

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告