Forum: Mikrocontroller und Digitale Elektronik ADC10 Programm auf MSP430


von Maler (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine paar Fragen zu folgendem Programm

//********************************************************************** 
********
//  MSP430G2x33/G2x53 Demo - ADC10, Sample A11, Lo_Batt, Set P1.0 if < 
2.3V
//
//  Description: A single sample is made on A11 (AVcc/2) with reference 
to
//  internal 1.5V Vref. Software sets ADC10SC to start sample and 
conversion
//  - ADC10SC automatically cleared at EOC. ADC10 internal oscillator 
times
//  sample (16x) and conversion. ADC10BUSY flag is polled for EOC. If 
A11
//  (AVcc/2) < 0311h (0.65V) indicating AVcc is less 2.3V, P1.0 set 
indicating
//  a lo_Batt condition, else reset.
//
//                MSP430G2x33/G2x53
//             -----------------
//         /|\|              XIN|-
//          | |                 |
//          --|RST          XOUT|-
//            |                 |
//            |A11          P1.0|-->LED
//
//  D. Dang
//  Texas Instruments Inc.
//  December 2010
//   Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 
5.10
//********************************************************************** 
********
#include  "msp430g2553.h"

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  ADC10CTL1 = INCH_11;                      // AVcc/2
  ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON;
  P1DIR |= 0x01;                            // Set P1.0 to output 
direction

  for (;;)
  {
    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion 
start
    while (ADC10CTL1 & ADC10BUSY);          // ADC10BUSY?
    if (ADC10MEM < 0x311)                   // ADC10MEM = A11 > 0.65?
      P1OUT |= 0x01;                        // Set P1.0 LED on
    else
      P1OUT &= ~0x01;                       // Clear P1.0 LED off
  }
}

Ich möchte eigentlich erstmal wissen ob ich da alles richtig verstanden 
habe.
A11 ist die die halbe Betriebsspannung welche hier gemessen wird?!
Als Referenz dient die interne Referenzspannung von 1,5V?!
Das heißt bei AVcc < ca.2,30V müsste die LED angehen weil 0x311 = 785 
und 1,5V/1024 * 785 = 1,15 (AVcc/2)?!
mit dem SREF_1 wähle ich die 1,5V aus?!

So jetzt meine Fragen:
Was sagt mir diese Zeile genau? -->  while (ADC10CTL1 & ADC10BUSY);
Und was ist mit diesen 0,65 gemeint?

Über eine schnelle Antwort wäre ich sehr Dankbar.

von Dennis (Gast)


Lesenswert?

Maler schrieb:
> Was sagt mir diese Zeile genau? -->  while (ADC10CTL1 & ADC10BUSY);

"Tue nichts, bzw. warte, solange der ADC noch beschäftigt ist mit der 
Wandlung"

Maler schrieb:
> Und was ist mit diesen 0,65 gemeint?

0,65V! Siehe Text: "(AVcc/2) < 0311h (0.65V) indicating AVcc is less 
2.3V, P1.0 set"

von Maler (Gast)


Lesenswert?

Danke für die schnelle Antwort.

Aber wie kommen die darauf dass es 0,65V sind?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.