MSP430 ADC mehrere Kanäle

#3159607
Lesenswert?

Hallo,

ich bin dabei mit den MSP430G2231 und seinen ADC10 mehrere Kanäle 
gleichzeitig zu messen. Mein Problem dabei ist das jetzt das die 
Messwerte in dem Array in dem ich die Ablege immer an unterschiedlichen 
stellen ist. Und das soll so ganz bestimmt nicht sein. Kann mir jemand 
sagen was bei mir falsch ist.
Kann es sein das ich dem ADC nicht genug zeit lase?

Danke schonmal für eure Hilfe.
1
#include "msp430x20x2.h"
2

3
void adc_init(void){
4
  static unsigned int res[11];
5

6
  ADC10CTL0 &= ~ENC;
7
  ADC10CTL0 = SREF_1 + REFON +  ADC10ON + ADC10SHT_3 + ADC10IE + REF2_5V + MSC;  
8
// use internal ref, turn on 2.5V ref, set samp time = 64 cycles REF2_5V
9

10
  ADC10CTL1 = INCH_11 + CONSEQ_3 + ADC10DIV_1;  
11
//Kanal auswählen; Art der Messung bestimmen;Teiler für ADC
12
  
13
        ADC10DTC0 =  ADC10CT;
14
  ADC10DTC1 = 0x0B;
15
  ADC10SA = (int)res;
16
  ADC10CTL0 &= ~ADC10IFG;
17
  ADC10CTL0 |= ENC + ADC10SC;;    
18
}
19

20
#pragma vector=ADC10_VECTOR
21
__interrupt void adc10_isr(void) {
22

23
  static unsigned int Toffset=11;
24

25
    unsigned long temp_V = ((ADC10MEM/ 1024)*2,5);  //Ref 2,5 V Spannungsmessung
26
    unsigned long temp_C=(((2.5*((float)ADC10MEM + Toffset))/1023)-0.986)/0.00355;  //Temperatur berechnen
27
    ADC10CTL0 &= ~ADC10IFG;
28

29

30
}
Gast #3159764
Lesenswert?

L. Tienson schrieb:
> static unsigned int Toffset=11;
#define Toffset 11

L. Tienson schrieb:
> unsigned long temp_V = ((ADC10MEM/ 1024)*2,5);  //Ref 2,5 V Spannungsmessung
>unsigned long temp_C=(((2.5*((float)ADC10MEM + Toffset))/1023)-0.986)
>/0.00355;  //Temperatur berechnen
Ich sehe kein array, sondern nur lokale Variablen in der ISR. Wozu die 
auch immer dienen.

L. Tienson schrieb:
> unsigned long temp_V = ((ADC10MEM/ 1024)*2,5);
Was sagt der Compiler zu                   ^^^ ???
#3159889
Lesenswert?

Das Array ist ganz oben 3 Zeile und ich nutze CCS weil ich muss nicht 
weil ich will :(.



nur mal so schrieb:
> unsigned long temp_V = ((ADC10MEM/ 1024)*2,5);
Was sagt der Compiler zu                   ^^^ ???

Ich versteh nicht ganz was du da meinst? Falls du wissen willst wozu ich 
die Zeile hab die brauch ich zur Berechnung der Versorgungsspannung die 
ich später an anderer Stelle brauch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren