A/D Wandler

Gast #34409
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren