Forum: Mikrocontroller und Digitale Elektronik A/D Wandler


von Max (Gast)


Lesenswert?

void main(void)
{
  int x,y;
  char buffer[16];

  lcd_init(LCD_DISP_ON);

  sbi (ADCSR, ADEN); //Enable

  //Teilung: 32
  sbi (ADCSR, ADPS2); //Teilung 3.Bit
  cbi (ADCSR, ADPS1); //Teilung 2.Bit
  sbi (ADCSR, ADPS0); //Teilung 1.Bit

  cbi (ADCSR, ADFR); //Free Run Mode
  cbi (ADCSR, ADIF); //Interrupt Flag
  cbi (ADCSR, ADIE); //Interrupt Enable


  cbi (ADMUX, MUX2); //Multiplexer 3.Bit
  cbi (ADMUX, MUX1); //Multiplexer 2.Bit
  cbi (ADMUX, MUX0); //Multiplexer 1.Bit

  for(;;){

    sbi (ADCSR, ADSC); //Start Conversation
    while (bit_is_set (ADCSR, ADIF)); //Warte bis ADIF wieder 0 ist

    x = inp(ADCH);
    y = inp(ADCL);

                lcd_clrscr();

        itoa(x,buffer,10);
        lcd_puts(buffer);
        lcd_puts(" ");

        itoa(y,buffer,10);
        lcd_puts(buffer);

        delay(200);
      }
}

ich hab am PA0 (ADCO) von meinem AT90S8535 eine Spannung (ca. 2,8V) 
angelegt und möchte diese nun über den A/D Wandler messen. Als Aref hb 
ich +Vcc genommen. Aber leider zeigt das LCD immer noch 0 (für das High 
und das Low Byte) an.

Wäre für Hilfe sehr dankbar!!

MfG,
Max

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.