A/D Converter uC

Gast #4722597
Hallo,

ich bräuchte Hilfe beim Konfigurieren des AD-Wandlers. Ich verwende 
folgenden uC: PIC24FJ128GB204. Ich schaffe es leider nicht, dass ich den 
12-Bit-ADC zum laufen bringe, obwohl ich sogar den größten Teil des 
Codes aus dem Datenblatt kopiert habe.

Beim Debuggen habe ich festgestellt, dass ich jedesmal in folgender 
Zeile hängen bleibe: while (!IFS0bits.AD1IF){}
Das bedeutet, dass das AD1IF nie gesetzt wird.
Aber warum nicht?

Hier der Code:
1
void adc()
2
   
3
    int ADCValue, count;
4
    int *ADC16Ptr;
5
    
6
    //Pin 15 soll eingelesen werden
7
    ANSBbits.ANSB15 = 1;
8
    TRISBbits.TRISB15 = 1;
9

10
    AD1CON1 = 0x00E0;
11
    AD1CHSbits.CH0SB = 0b01001;
12
    AD1CHSbits.CH0NB = 0;
13
    AD1CHSbits.CH0NA = 0;
14
    AD1CHSbits.CH0SA = 0b01001;
15
    AD1CSSL = 0;
16
    AD1CON3 = 0x0F00;
17
    AD1CON2 = 0x003C;
18
    AD1CON1bits.ADON = 1;
19
    while(1)
20
    {
21
        ADCValue = 0;
22
        ADC16Ptr = &ADC1BUF0;
23
        IFS0bits.AD1IF = 0;
24
        AD1CON1bits.ASAM = 1;
25
    
26
    while (!IFS0bits.AD1IF){};
27
    AD1CON1bits.ASAM = 0;
28
    for (count = 0; count < 16; count++)
29
    {
30
        ADCValue = ADCValue + *ADC16Ptr++;
31
    }
32
    ADCValue = ADCValue >> 4;
33
// repeat
34
    }   
35
}
Gast #4722898
Stimi schrieb:
> Das bedeutet, dass das AD1IF nie gesetzt wird.
> Aber warum nicht?

Du erwartest sicherlich nicht, daß hier irgendwer durch deine Quelle 
sich durcharbeitet, das RefMan sich zieht und alle Hex-Zahlen einzeln 
aufdröselt - oder?

Wenn AD1IF nicht gesetzt wird, dann ist vermutlich der ADC nie fertig 
geworden, was darauf hindeuten könnte, daß er nie gestartet worden ist.

W.S.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.