请教 PIC16F7X系列,C语言设计,bank切换问题

[复制链接]
3843|6
 楼主| lovwuyan 发表于 2012-7-4 10:22 | 显示全部楼层 |阅读模式
PIC16F76单片机,自带4bank,现在我想将寄存器都随系统自定义,实验结果储存在bank2中,bank2可以储存首地址为120H
自写代码:   unsigned char a @120h;        //绝对定位在120H,储存首地址
                 unsigned char *add;
                 add = &a;
现在的问题是,a的地址是120H,这就已经是int型了,而指针变量add又是char型的,能储存a的地址么?
再问,bank切换,用C语言编写,要不要也像汇编那样,在对bank2操作的时候,也要对status里的IRP位进行置位?
asspeed 发表于 2012-7-4 11:34 | 显示全部楼层
人家指针表示是指向的是unsigned char。。。。。。
 楼主| lovwuyan 发表于 2012-7-4 13:18 | 显示全部楼层
额,我的意思是说,120H,超过8位地址了,如果存进add这个8位空间的寄存器呢?
yewuyi 发表于 2012-7-4 15:03 | 显示全部楼层
额,我的意思是说,120H,超过8位地址了,如果存进add这个8位空间的寄存器呢?
lovwuyan 发表于 2012-7-4 13:18


你好好看看C语言的书哦,你自己理解错了哦,add代表的是指向字符型变量的指针,但这个指针的数据长度可并不等于字符型哦,这个指针的数据长度一般在编译器内部规定的
 楼主| lovwuyan 发表于 2012-7-7 14:38 | 显示全部楼层
呵呵,指针学的不好啊,很拗口的感觉。现在还用数组啦,方便多了。
wangjiati 发表于 2012-7-7 16:49 | 显示全部楼层
使用 PIC CCS编译器 不用在乎bank这类的切换
tigerajun 发表于 2012-7-8 11:40 | 显示全部楼层
在指针前加上bank限定符即可,如:
bank2 unsigned char a @120h

但这个指针只能指向bank2 或bank3的register
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部