ADCON1有ADCS寄存器?

[复制链接]
1291|21
 楼主| zyf部长 发表于 2020-7-5 11:28 | 显示全部楼层 |阅读模式
PIC16F1503的SPEC中描述ADCON1是有ADCS寄存器的,但是编译的时候却说没定义
tian111 发表于 2020-7-5 11:33 | 显示全部楼层
什么意思?不是很明白你说的什么
 楼主| zyf部长 发表于 2020-7-5 11:36 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
zwll 发表于 2020-7-5 11:39 | 显示全部楼层
语法错误。看芯片头文件里的定义
 楼主| zyf部长 发表于 2020-7-5 11:44 | 显示全部楼层
芯片头文件里没有定义
dingy 发表于 2020-7-5 11:47 | 显示全部楼层
直接用ADCON1bits.ADCS = xx;
supernan 发表于 2020-7-5 11:50 | 显示全部楼层

问编译相关的问题, 最好
1. 所用的编译环境IDE, 编译器版本
2.贴出有问题的原始代码, 而不是错误信息
不然, 人家怎么猜到你的到底是什么原因导致的错误嘛? 是吧
liuzaiy 发表于 2020-7-5 11:53 | 显示全部楼层

下面是XC8 v2.00的PIC16F1503.h文件中关于ADCS的定义,
// bitfield definitions
typedef union {
    struct {
        unsigned ADPREF                 :2;
        unsigned                        :2;
        unsigned ADCS                   :3;
        unsigned ADFM                   :1;
    };
    struct {
        unsigned ADPREF0                :1;
        unsigned ADPREF1                :1;
    };
} ADCON1bits_t;
extern volatile ADCON1bits_t ADCON1bits __at(0x09E);

除此之外, 再无ADCS相关的声明了, 因此, 你需要使用楼上的方法:
ADCON1bits.ADCS = xx;
或者自行#define ADCS ADCON1bits.ADCS
然后才是你习惯的用法:
ADCS = xxx;
chenjunt 发表于 2020-7-5 11:57 | 显示全部楼层
推荐使用第一种方法...
 楼主| zyf部长 发表于 2020-7-5 12:14 | 显示全部楼层
我还是MPLAB V8.90的,都没有你说的这个头文件。只能搜到p16f1503.inc
lium 发表于 2020-7-5 12:17 | 显示全部楼层
inc是汇编头文件,你到底是用C还是汇编?用C得安装XC8编译器,MPLAB IDE v8是古董了,转用MPLAB X吧
 楼主| zyf部长 发表于 2020-7-5 12:20 | 显示全部楼层
我用的C啊,C编译器是HI-TECH C V8.93但是我没找到C的头文件
 楼主| zyf部长 发表于 2020-7-5 12:24 | 显示全部楼层
今天找到1503的头文件了,确实没定义。自己加上去可以吗?
 楼主| zyf部长 发表于 2020-7-5 12:27 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
zhuhuis 发表于 2020-7-5 12:28 | 显示全部楼层
根据你贴的头文件的图片, ADCS已经有定义,下面一条语句就可以把3个ADCS比特位都配置好了。

ADCON1bits.ADCS = xx;
llljh 发表于 2020-7-5 12:52 | 显示全部楼层
对啊,本来写一条语句就好,有必要非要使用三条语句来操作吗?
 楼主| zyf部长 发表于 2020-7-5 12:56 | 显示全部楼层

嗯,我再好好缕一缕吧,有了好消息及时通知大家
淘猫汤姆 发表于 2020-7-5 17:34 | 显示全部楼层
你的编译器还是上古时代的产品。。。
coshi 发表于 2020-8-4 14:15 | 显示全部楼层
数据手册上怎么说的
zljiu 发表于 2020-8-4 14:16 | 显示全部楼层
请问这个寄存器是干嘛用的啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

694

主题

7102

帖子

8

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