打印

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

[复制链接]
3043|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代表的是指向字符型变量的指针,但这个指针的数据长度可并不等于字符型哦,这个指针的数据长度一般在编译器内部规定的

使用特权

评论回复
5
lovwuyan|  楼主 | 2012-7-7 14:38 | 只看该作者
呵呵,指针学的不好啊,很拗口的感觉。现在还用数组啦,方便多了。

使用特权

评论回复
6
wangjiati| | 2012-7-7 16:49 | 只看该作者
使用 PIC CCS编译器 不用在乎bank这类的切换

使用特权

评论回复
7
tigerajun| | 2012-7-8 11:40 | 只看该作者
在指针前加上bank限定符即可,如:
bank2 unsigned char a @120h

但这个指针只能指向bank2 或bank3的register

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

0

粉丝