MSP430 ADC mehrere Kanäle

OP #3159607
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
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                   ^^^ ???
OP #3159889
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.