打印

PIC18自带比较器调不通,再来请求帮助!

[复制链接]
3730|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Ryanhsiung 于 2012-2-11 13:06 编辑

PIC18F66K80 使用内部比较器!  输入为-0.7V与5.0V,比较器输出状态一直为低。
后改成2.7V-4.0V输入,比较器输出还是一直为低?
为什么呢?莫非先前-0.7V搞坏了内部比较器!

以下为初始化代码
        // 使能该外设, 开机后我将所有全部关闭了
        PFTCM_PMDbits.PFTCM_EN = 0;                                // 使能这个模块
       
        // PORT init
        F_TRIS_INPFT(IN);
        F_ANCON_PFT(ANA);
       
        //比较器的设置
        //PFTCM = 0X00;                                                        // 先全部清0
        // 注意:IF开机后被置为1,注意清0
        PFTCMbits.CON = 1;                                        // 使能比较器
        PFTCMbits.COE = 0;                                        // 比较器不输出到C2OUT引脚上
        PFTCMbits.CPOL = 0;                                // 输出不反相
        PFTCMbits.EVPOL = 0X00;          // 禁止中断
        PFTCMbits.CREF = 1;                                // 连接到内部CVREF电压
        PFTCMbits.CCH = 0X00;                        // 连接到C1INB引脚
       
        // 读状态
        //CMSTATbits.CMP1OUT                                //1:+>-  0:+<-        若反相则相反 定义成了RD_PFT
          
        // CVREF 电压设置模块
        CVRCONbits.CVREN = 1;                                // 比较器参考电压使能位 上电
        // cvref电夺从CVREF引脚输出输出 断开CVREF引脚电位输出输出
        CVRCONbits.CVROE = 0;                   // 可做DA输出
        CVRCONbits.CVRSS = 1;                                //  比较器VREF源选择位 =VREF+-VREF-  现在只有高低
        //CVRCONbits.CVRSS = 0;                                // =0 AVDD-AVSS 这个很准
        CVRCONbits.CVR = 16;                                 // VREF*(CVR/32) 0.625V 在于这个电压设置     
        // 中断
        PFT_IPRbits.PFT_IP =0;                        // 使用低优先级
        D_INL_PFT_CloseIE();                                // 注意 开机默认IF为开状态


那位兄弟有例程,给个例程!
沙发
Ryanhsiung|  楼主 | 2012-2-10 17:21 | 只看该作者
宏定义:
        #define PFTCM_PMDbits                        PMD2bits        
        #define PFTCM_EN                                         CMP2MD       
       
        #define PFTCM                                                 CM2CON       
        #define PFTCMbits                                         CM2CONbits
       
        #define PFT_PIRbits                                PIR4bits
        #define PFTIF                                                CMP2IF
        #define PFT_PIEbits                                PIE4bits
        #define PFTIE                                                CMP2IE
       
        #define PFT_IPRbits                        IPR4bits
        #define PFT_IP                                                CMP2IP

使用特权

评论回复
板凳
NE5532| | 2012-2-10 20:36 | 只看该作者
个人建议,仔细跟着Datasheet梳理设置上的问题了。IO都有钳位二极管,能保护超过电源轨的电压的。

使用特权

评论回复
地板
Ryanhsiung|  楼主 | 2012-2-11 09:25 | 只看该作者
C1INB 实际使用要设置C2INB才能调用C1INB

QQ截图未命名.png (50.92 KB )

QQ截图未命名.png

使用特权

评论回复
5
Ryanhsiung|  楼主 | 2012-2-11 09:40 | 只看该作者
对了,还有一个注意
   内部可调的基准电压,相当的不准!

使用特权

评论回复
6
yewuyi| | 2012-2-11 09:42 | 只看该作者
VCC变成4V了,你输入5V会有什么好结果呢?:curse:

使用特权

评论回复
7
Ryanhsiung|  楼主 | 2012-2-11 13:05 | 只看该作者
VCC变成4V了,你输入5V会有什么好结果呢?:curse:
yewuyi 发表于 2012-2-11 09:42

实际上没关系,PIC的芯片抗的住

使用特权

评论回复
8
Ryanhsiung|  楼主 | 2012-2-11 13:05 | 只看该作者
VCC变成4V了,你输入5V会有什么好结果呢?:curse:
yewuyi 发表于 2012-2-11 09:42

不好意思,写错了,是改成2.2-4V比较器输入

使用特权

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

本版积分规则

认证:嵌入式技术专家
简介:道阻且长,行则将至!

64

主题

4654

帖子

14

粉丝