A/D Wandler stoppen und register auslesen

OP #5497973
Lesenswert?
• ▲
▼
Hallo,

Betrifft Pic 16F676

Ich will über einen Spannungsteiler am Port RC0/AN4 die Spannung eines 
AKKUS lesen und in einen Digitalen Wert zur späteren Verarbeitung aus 
dem
ADRESL *ADRESH Register auslesen.

Ich habe das Programm nur mit dem Debugger getestet und da fest gestellt 
das der A/D Wandler startet aber mit der commando zeile

while (ADCON0.GO_DONE==1);        //prüfen ob noch aktiv

nicht stoppt. Was ist falsch ??
Im Anschluss noch das Programm.

Gruß Karl-Heinz



// Define
#define LED1           PORTC.RC5    //LED low  liegt an Port RC5

// Globale Variablen

int analog_hexwert;

void main(void) {

     TRISC = 0x07;   //set C-Port 0-2 in 3-5 out
     PORTC = 0x00;   //set C-Port all bit to 0V
     ADCON0 = 0x80;  //set analog module right justified
     ADCON1 = 0x20;  //set clock select Fosc32
     ANSEL = 0x70;   //select ANS 4 to analog input

while(1)
      {
       ADCON0.ADON = 1;
       ADCON0.CHS2 = 1;
       ADCON0.GO_DONE = 1;          //messen ein
       while (ADCON0.GO_DONE==1);        //prüfen ob noch aktiv
       Delay_ms (550);
       analog_hexwert = ADRESL + (ADRESH * 256);
      }

if (analog_hexwert < 500)
   {
    LED1 =1;
   }
}

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.