www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430F149 ADC immer 0xFFF


Autor: Fabian Hof (Firma: keine) (eimer)
Datum:

Bewertung
0 lesenswert
nicht 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.
#include  <msp430x14x.h>
#include  <math.h>
float sum;
unsigned int i=0;
unsigned int j=0;
float RMS;

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P4DIR |= 0x0F;                            // P4.0 output
  P4OUT=0;                                  //Reset Outputs
  CCTL0 = CCIE;                             // CCR0 interrupt enabled
  CCR0 = 3;                                 //32768/4 =8192
  TACTL = TASSEL_1 + MC_1;                  // ACLK, upmode
  //Test  
  
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
}

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

#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
{
    long int temp=0;
    long int temp1=0;
    temp=(ADC12MEM0);
    temp=(ADC12MEM1);
    temp1=temp*temp;
   ADC12CTL0 &= ~ENC;                         // Enable conversions
}

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.
D.h. der Interrupt löst aus, aber das Ergebnis sieht nicht richtig aus?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht so?
> #pragma vector=ADC12_VECTOR
> __interrupt void ADC12ISR (void)
> {
>     long int temp=0;
>     long int temp1=0;
>     temp=(ADC12MEM0);
>//     temp=(ADC12MEM1);
>     temp1=temp*temp;
>    ADC12CTL0 &= ~ENC;                         // Enable conversions
> }

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

Autor: Fabian Hof (Firma: keine) (eimer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADC12IE = 0x03; <--- Hier liegt der Fehler es muss natürlich 0x0003 
sein, hat ja 16 bit :)

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fabian Hof schrieb:
> ADC12IE = 0x03; <--- Hier liegt der Fehler es muss natürlich 0x0003

Du willst uns jetzt aber nicht erzählen, dass es nur mit dieser 
Änderung funzt ?
Das kann nämlich nicht sein!

Autor: der don (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fabian Hof schrieb:
> ADC12IE = 0x03; <--- Hier liegt der Fehler es muss natürlich 0x0003
> sein, hat ja 16 bit :)
>

So ein Quatsch! Das ist genau dasselbe, kannst auch einfach 3 
hinschreiben!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.