打印

关于P2.2口的设置

[复制链接]
1064|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
郝英俊|  楼主 | 2014-10-13 08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <MSP430X14X.h>    //msp430f149
typedef unsigned char uchar;
void main( void )
{
  WDTCTL = WDTPW + WDTHOLD;
  P2DIR |=BIT2;
  P2SEL |=BIT2;  //p2.2
  CAPD |=0X08;
  CACTL2=P2CA0;   //CA0-P2.3,int,比较器的正端
  
  //CACTL1=CARSEL+CAREF_0+CAON;
  CACTL1=CARSEL+CAREF_2+CAON;  //内部参考接到比较器的负端,0.25vcc,open-coa
                               //CAREF_1=0.8v  CAREF_2=1.6V   CAREF_3=0.6v
}
这个是我写的一个简单的比较器输出,前几天还能有输出的,不知道为什么就突然不能用了。我猜应该和P2.2口设置有关,因为之前写了一个PWM波输出的程序,使用定时器OUTMOD_4这个功能,输出I/OP2.2也不能用



相关帖子

沙发
dirtwillfly| | 2014-10-13 22:08 | 只看该作者
调试时,注意下寄存器CAOUT,看是否比较器没有正常工作,还是正常工作了没有输出

使用特权

评论回复
板凳
郝英俊|  楼主 | 2014-10-15 09:45 | 只看该作者
dirtwillfly 发表于 2014-10-13 22:08
调试时,注意下寄存器CAOUT,看是否比较器没有正常工作,还是正常工作了没有输出 ...

CAOUT寄存器值始终为1

使用特权

评论回复
地板
dirtwillfly| | 2014-10-15 21:39 | 只看该作者
郝英俊 发表于 2014-10-15 09:45
CAOUT寄存器值始终为1

CAOUT为1应该是比较器已经工作了。你换个io,通过if(CAOUT)来输出高电平,验证一下。
另外,你尝试下:设置控制位CAF位置位时,通过片上的RC低通滤波器进行滤波输出,看怎么样。

还有让p2.2作为普通io使用时,是否输出正常。如果不正常,可能是该io坏了

使用特权

评论回复
5
郝英俊|  楼主 | 2014-10-15 23:04 | 只看该作者
dirtwillfly 发表于 2014-10-15 21:39
CAOUT为1应该是比较器已经工作了。你换个io,通过if(CAOUT)来输出高电平,验证一下。
另外,你尝试下: ...

我用if(CAOUT)试过了,换了个其他的IO口,还是CAOUT一直为一

使用特权

评论回复
6
dirtwillfly| | 2014-10-16 08:51 | 只看该作者
郝英俊 发表于 2014-10-15 23:04
我用if(CAOUT)试过了,换了个其他的IO口,还是CAOUT一直为一

为1说明比较器工作了,这个寄存器默认是0

使用特权

评论回复
7
smilingangel| | 2014-10-16 17:19 | 只看该作者
这个是用其IO口的服用功能的 啊,,

使用特权

评论回复
8
angerbird| | 2014-10-17 17:35 | 只看该作者
这个还是蛮不错的啊。

使用特权

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

本版积分规则

17

主题

40

帖子

0

粉丝