MSP430F149 ADC immer 0xFFF

OP (Firma: keine) #1735697
Lesenswert?
• ▲
▼
Hi Leute,

ich hab gerade ein kleines Problem.

Und zwar zeigt mein ADC immer was an obwohl er in der Luft hängt, auch 
wenn ich eine Spannung anleg wandelt der nichts um. Ich kann mir das 
nicht erklären, ich meine vorgestern ging das mit dem Code noch 
einwandfrei.
Vll. sieht einer von euch den Fehler, meiner nicht geschulten Meinung 
nach passt das so.
1
#include  <msp430x14x.h>
2
#include  <math.h>
3
float sum;
4
unsigned int i=0;
5
unsigned int j=0;
6
float RMS;
7

8
void main(void)
9
{
10
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
11
  P4DIR |= 0x0F;                            // P4.0 output
12
  P4OUT=0;                                  //Reset Outputs
13
  CCTL0 = CCIE;                             // CCR0 interrupt enabled
14
  CCR0 = 3;                                 //32768/4 =8192
15
  TACTL = TASSEL_1 + MC_1;                  // ACLK, upmode
16
  //Test  
17
  
18
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
19
}
20

21
// Timer A0 interrupt service routine
22
#pragma vector=TIMERA0_VECTOR
23
__interrupt void Timer_A (void)
24
{
25
  i++;
26
  P4OUT ^= 0x0F;                            // Toggle P1.0
27
  P6SEL |= 0x03;                            // Enable A/D channel A0
28
  ADC12CTL0 = ADC12ON+SHT0_0+MSC;           // Turn on ADC12, set sampling time
29
  ADC12CTL1 = SHP+CONSEQ_0+CSTARTADD0;      // Use sampling timer, set mode
30
  ADC12IE = 0x03;                           // Enable ADC12IFG.0
31
  ADC12MCTL0 = EOS+INCH_0+SREF_0;
32
  ADC12CTL0 |= ENC;                         // Enable conversions
33
  ADC12CTL0 |= ADC12SC;                     // Start conversion
34
  
35
}
36

37
#pragma vector=ADC12_VECTOR
38
__interrupt void ADC12ISR (void)
39
{
40
    long int temp=0;
41
    long int temp1=0;
42
    temp=(ADC12MEM0);
43
    temp=(ADC12MEM1);
44
    temp1=temp*temp;
45
   ADC12CTL0 &= ~ENC;                         // Enable conversions
46
}
Gast #1735954
Lesenswert?
• ▲
▼
vielleicht so?
1
> #pragma vector=ADC12_VECTOR
2
> __interrupt void ADC12ISR (void)
3
> {
4
>     long int temp=0;
5
>     long int temp1=0;
6
>     temp=(ADC12MEM0);
7
>//     temp=(ADC12MEM1);
8
>     temp1=temp*temp;
9
>    ADC12CTL0 &= ~ENC;                         // Enable conversions
10
> }

Oder steht schon in ADC12MEM0 selbst nix drin, oder wie?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.