ADCON1有ADCS寄存器?

[复制链接]
1887|26
 楼主| zyf部长 发表于 2022-2-1 23:35 | 显示全部楼层 |阅读模式
PIC16F1503的SPEC中描述ADCON1是有ADCS寄存器的,但是编译的时候却说没定义
zhenykun 发表于 2022-2-1 23:37 | 显示全部楼层
什么意思?不是很明白你说的什么
 楼主| zyf部长 发表于 2022-2-1 23:40 | 显示全部楼层


本帖子中包含更多资源

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

×
wyjie 发表于 2022-2-1 23:42 | 显示全部楼层
语法错误。看芯片头文件里的定义
 楼主| zyf部长 发表于 2022-2-1 23:46 | 显示全部楼层
芯片头文件里没有定义
huangchui 发表于 2022-2-1 23:48 | 显示全部楼层
直接用ADCON1bits.ADCS = xx;
supernan 发表于 2022-2-1 23:50 | 显示全部楼层

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

下面是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 发表于 2022-2-1 23:54 | 显示全部楼层
推荐使用第一种方法...
 楼主| zyf部长 发表于 2022-2-1 23:56 | 显示全部楼层
我还是MPLAB V8.90的,都没有你说的这个头文件。只能搜到p16f1503.inc
yszong 发表于 2022-2-1 23:58 | 显示全部楼层
inc是汇编头文件,你到底是用C还是汇编?用C得安装XC8编译器,MPLAB IDE v8是古董了,转用MPLAB X吧
 楼主| zyf部长 发表于 2022-2-2 09:02 | 显示全部楼层
我用的C啊,C编译器是HI-TECH C V8.93但是我没找到C的头文件
 楼主| zyf部长 发表于 2022-2-2 09:07 | 显示全部楼层
今天找到1503的头文件了,确实没定义。自己加上去可以吗?
 楼主| zyf部长 发表于 2022-2-2 09:09 | 显示全部楼层

本帖子中包含更多资源

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

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

ADCON1bits.ADCS = xx;
llljh 发表于 2022-2-2 09:13 | 显示全部楼层
对啊,本来写一条语句就好,有必要非要使用三条语句来操作吗?
stly 发表于 2022-2-2 09:15 | 显示全部楼层
你的编译器还是上古时代的产品。。。
dengdc 发表于 2022-2-2 09:17 | 显示全部楼层
数据手册上怎么说的
yszong 发表于 2022-2-2 09:19 | 显示全部楼层
请问这个寄存器是干嘛用的啊
pengf 发表于 2022-2-2 09:51 | 显示全部楼层
未定义 不代表没有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

694

主题

7102

帖子

8

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