求高手指教MSP430F2619 的比较器使用方法

楼主
求高手指教MSP430F2619 的比较器使用方法

求高手指教MSP430F2619 的比较器使用方法


       今天弄了一下午Comparator A 但是还是没弄明白,主要是现象和我想的不一样


我是这几点没弄明白,大家看我哪里叙述有误:
        CACTL1 中的 CAEX 和 CARSEL 决定了参考电压的输入端(+ or -) CAREF 选择参考电压
   CAON 打开比较器A  CAIE CAIES CAIFG 与中断有关(这个我明白)
  下面我的问题来了,没理解好的地方:
         CACTL2 中的 CASHORT 是有关短路采样的,没用到
        CAF 输出滤波
        CAOUT 输出状态
         P2CA4 P2CA3 P2CA2 P2CA1 P2CA0 这几位把我弄糊涂了,没有看懂datasheet的意思
    datasheet 中把 P2CA4 和 P2CA0 作为一组  P2CA3 P2CA2 P2CA1 作为一组 他们的设定都要根据
      CAEX 的情况, 但这两组到底针对谁啊,感觉自相矛盾?

#include<msp430x26x.h>
void ComparatorA_init();
void LED_init();


void main(void)
{
     WDTCTL = WDTHOLD + WDTPW;   // 关狗
     LED_init();            // led初始化  P5.7 接的LED正端
     ComparatorA_init();   // CA初始化
   
    _EINT();    

    while(1)
    {
      if((CAOUT & CACTL2) == 1) // 判断CAOUT 的状态 ,控制LED亮灭
           P5OUT |= BIT7;
      else
           P5OUT &= ~BIT7;
    }
}
void LED_init()
{
   P5DIR |= BIT7;
   P5OUT &= ~BIT7;
}
void ComparatorA_init()
{
   CACTL1 = CAON + CAREF_2 + CARSEL  // 开CA + 选择参考源 + 选择参考源输入端
   CACTL2 =  P2CA3 + CAF; // 选择通道 开滤波 怎么选择通道哦?
   CAPD |= BIT2;  // 关相应管脚的BUFFER
   P2SEL |= BIT2;  这句话好像没用?
}
加一个问题,PxREN 在其他情况下感觉用不用没多大影响?

可以的话请给一个 MSP430F2619 比较器A 的例程,谢谢啦!
1楼
[P][CODE]
//             MSP430F261x/241x
//             -----------------
//         /|\|                 |
//          | |                 |
//          --|RST      P2.3/CA0|<--Vcompare
//            |                 |
//            |             P1.0|-->CAOUT - LED
#include  <msp430x26x.h>
void main(void)
{
  WDTCTL = WDTPW+WDTHOLD;                   // Stop WDT
  CACTL1 = CAEX+CAON+CAREF_2+CARSEL;        // Enable comp, ref = 0.5*Vcc = Vin+
  CACTL2 = P2CA0;                           // Pin to CA0 -> V-
  P1DIR |= 0x001;                           // P1.0 = o/p direction (CAOUT- LED)
  P1SEL |= 0x001;                           // P1.0 - CAOUT, option select
  _BIS_SR(LPM0_bits);                       // Enter LPM0
}
[/CODE][/P][P][CODE]
#include  <msp430x26x.h>
void main(void)
{
  WDTCTL = WDTPW+WDTHOLD;                   // Stop WDT
  CACTL1 = CAON+CAREF_3+CARSEL;             //Enable comp, ref = Diode ref
  CACTL2 = P2CA0;                           // Pin to CA0
  P1DIR |= 0x001;                           // P1.0 = o/p direction (CAOUT- LED)
  P1SEL |= 0x001;                           // P1.0 - CAOUT, option select
  _BIS_SR(LPM0_bits);                       // Enter LPM0
}
[/CODE]
参考一下吧....[EM11][/P]
2楼
谢谢啦版主!! 继续摸索中···[EM14]

电脑版 Page created in 0.1875 seconds width 5 queries.