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

[复制链接]
4713|7
 楼主| Ryanhsiung 发表于 2012-2-10 17:20 | 显示全部楼层 |阅读模式
本帖最后由 Ryanhsiung 于 2012-2-11 13:06 编辑

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

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


那位兄弟有例程,给个例程!
 楼主| Ryanhsiung 发表于 2012-2-10 17:21 | 显示全部楼层
宏定义:
  1.         #define PFTCM_PMDbits                        PMD2bits       
  2.         #define PFTCM_EN                                         CMP2MD       
  3.        
  4.         #define PFTCM                                                 CM2CON       
  5.         #define PFTCMbits                                         CM2CONbits
  6.        
  7.         #define PFT_PIRbits                                PIR4bits
  8.         #define PFTIF                                                CMP2IF
  9.         #define PFT_PIEbits                                PIE4bits
  10.         #define PFTIE                                                CMP2IE
  11.        
  12.         #define PFT_IPRbits                        IPR4bits
  13.         #define PFT_IP                                                CMP2IP
NE5532 发表于 2012-2-10 20:36 | 显示全部楼层
个人建议,仔细跟着Datasheet梳理设置上的问题了。IO都有钳位二极管,能保护超过电源轨的电压的。
 楼主| Ryanhsiung 发表于 2012-2-11 09:25 | 显示全部楼层
C1INB 实际使用要设置C2INB才能调用C1INB

本帖子中包含更多资源

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

×
 楼主| Ryanhsiung 发表于 2012-2-11 09:40 | 显示全部楼层
对了,还有一个注意
   内部可调的基准电压,相当的不准!
yewuyi 发表于 2012-2-11 09:42 | 显示全部楼层
VCC变成4V了,你输入5V会有什么好结果呢?:curse:
 楼主| Ryanhsiung 发表于 2012-2-11 13:05 | 显示全部楼层
VCC变成4V了,你输入5V会有什么好结果呢?:curse:
yewuyi 发表于 2012-2-11 09:42

实际上没关系,PIC的芯片抗的住
 楼主| Ryanhsiung 发表于 2012-2-11 13:05 | 显示全部楼层
VCC变成4V了,你输入5V会有什么好结果呢?:curse:
yewuyi 发表于 2012-2-11 09:42

不好意思,写错了,是改成2.2-4V比较器输入
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

64

主题

4653

帖子

14

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