老古开发网首页
导航:老古开发网首页文章索引索引第2116页文章分类单片机第44页→[在PICC中使用常数指针]
| -文章搜索 - 最新文章 - |

第2711篇:在PICC中使用常数指针

发布时间:2006年8月2日 点击次数:1192
来源:   作者:
 

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

 


欢迎进入老古论坛进行讨论
[单片机] 相关文章:
[转载]基于 TLC2543设计的采集系统
简介:
基于 TLC2543设计的采集系统 Design of the Serial Data Sampling based on TLC2543 本文来自2003年第5期“计算机控制,监测与管理”上 作 者 :武汉理工大学 左克群 关键词: 串行,A/D 1 引言 实验和工程实际中我们要进行大量的数据处理。运用单片机采集系统能很好的解决这些问题。基本的采集系统一般由......

PIC单片机编程漫谈(一)
[转载]基于单片机的OLED显示器的应用
AT89cxx加密原理
如何用PIC做红外线遥控接收?(三)
 
下一个:[单片机][转载]8位单片机的16位外部总线扩展与应用
简介:
8位单片机的16位外部总线扩展与应用 清华大学 于良耀 宋健 随着电子设计技术的进步和芯片制造工艺水平的提高,16位和32位单片机的使用越来越广泛,但是8位单片机因其制造工艺成熟、价格低廉等特点,仍然在市场上占有相当大的比例,尤其在成本敏感和可靠性要求极高的汽车电子领域,更占用绝对优势,带有外部总线的8位单片机,可以方便地与8位总线设备(如A/D、RAM和CAN总线)相连。随着对传输性能要求的提高,出现了大量的16位总线设备(如网络接口芯片),8......

上一个:[单片机]初浅研究PIC之延时函数和循环体优化

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:31毫秒