歡迎您光臨本站 登入註冊首頁

在PICC中使用常數指針

admin @ 2014-03-14 , reply:0

概述

在PIC中使用常數指針   常數指針使用非常靈活,可以給編程帶來很多便利。我測試過,PICC也支持常數指針,並且也會自動分頁,實在是一大喜事。定義一個指向8位RAM數據的……

在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);
}

[admin via 研發互助社區 ] 在PICC中使用常數指針已經有2470次圍觀

http://cocdig.com/docs/show-post-382.html