This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430G2553:ADU10不工作

Guru**** 2587365 points
Other Parts Discussed in Thread: MSP430G2553

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/622652/ccs-msp430g2553-adu10-does-not-work

器件型号:MSP430G2553

工具/软件:Code Composer Studio

女士和绅士,

我的意思是、我已经按照"用户指南"完成了所有工作。 但它不起作用。 我想要的是、定期读取 MSP430G2553 P1.3上的值。
变量'isoll'的值始终为0。 ADC10MEM 的值始终为436 (十进制)。

此致
Franz Peter Zantis

/*
Software für Die Stromversorgung mit MSP430G2553
臂架:2. 2017年9月、F.P. Zantis
*

#include

unsigned int isoll;      //Stromvorgabe

int main (void){
   WDTCTL = WDTPW | WDTHOLD;   //停止看门狗计时器
   BCSCTL1 = CALBC1_16MHz;    //时钟 SMCLK=16MHz
   DCOCTL = CALDCO_16MHz;     //使用内部 DCO 作为时钟

   P2SEL &=~BIT6;         //P2.6 als 输入/输出
   P2SEL &=~BIT7;         //P2.7 als 输入/输出
   P2DIR |= BIT6;         //P2.6 als 输出
   P2DIR |= BIT7;         //P2.7 als 输出
   P2OUT &=~BIT6;         //P2.6 auf LOW;LEDrot ein
   P2OUT &=~BIT4;         //P2.7 auf LOW;   LEDgruen ein

   //ADC
   P1SEL |= BIT3;               //ADC 输入 über P1.3
   ADC10AE0 = BIT3;            //ADC 输入 A3 über P1.3 eingeschalettet
   ADC10CTL1 = INCH_3;         //通道3 - A3
   ADC10CTL1 |= ADC10DIV_7;      //ADC10CLK/8
   ADC10CTL1 |= CONSEQ_2;         //单通道重复转换
   ADC10CTL0 = ADC10ON;         //ADC 打开
   ADC10CTL0 |= SREF_1;         //Vref 和 VSS 引用(1、5V)
   ADC10CTL0 |= REFON;            //基准发生器打开
   ADC10CTL0 |= ADC10SHT_3;      //采样保持= 64个时钟
   ADC10CTL0 |= MSC;            //自动连续采样
   ADC10CTL0 |= ADC10SC;         //开始转换
   ADC10CTL0 |= ADC10IE;         //ADC 中断使能
   ADC10CTL0 |= ENC;            //ADC 被启用

   _enable_interrupt ();


   while (1)
   {
      if (isoll > 500)
      {
         P2OUT &=~BIT6;         //P2.6 auf LOW;   LEDrot ein
      }
      其他
      {
         P2OUT |= BIT6;         //P2.6 auf 高电平;LEDrot aus
      }

   }


   返回0;






#pragma vector = ADC10_vector
_interrupt void ADC10ISR (void)

   Isoll = ADC10MEM;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您看一下是否调用了 ISR? ENC 应在 SC 之前或至少同时置位。 如果未启用转换、则无法启动转换。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在它起作用了。 谢谢你。
    我只放置了线路
    ADC10CTL0 |= ADC10SC; //开始转换
    结束时的时间。