2 Analoge Spannungen mit STK500 und ATDVK90CAN1 messen

Gast #3308663
Lesenswert?

Ich stehe vor folgendem Problem:
Ich muss 2 Spannungen über den ADC eines STK500-Boards mit 
ATDVK90CAN1-Erweiterung einlesen.
Spannungen:0-4,5V
Ich verwende folgenden Code dafür:

#include <avr/io.h>

void AD(char Channl, char Led)
{
  ADMUX &= ~(0x00 | (1<<MUX0) | (1<<MUX1) | (1<<MUX2) | (1<<MUX3));
  ADMUX |= Channl;
  ADCSRA |= (1 << ADSC);
  while(!(ADCSRA & ~ADSC)){}

  //wenn ADC-Wert über 512--> LED leuchtet nicht, unter 512--> LED
  //leuchtet:

  if(ADC > 512)
  {
    PORTB |= Led;
  }
  else
  {
    PORTB &= ~Led;
  }
  ADC = 0;
        return;
}

int main(void)
{
  DDRB = 0xFF;
  PORTB = 0x00; //verbunden mit LED`s

  ADCSRA |= ((1 << ADEN) | (1 << ADPS0) | (1 << ADPS1) |(1 <<ADPS2));
  ADMUX |= (1 << REFS0);

  while(1)
  {
    AD(1 << MUX2, 0b00000010);
    AD((1 << MUX0) | (1 << MUX2), 0b00000001);
  }
}

Das Einlesen der Spannung funktioniert zwar, allerdings lässt sich der 
ADC-Wert nicht reseten. wenn ich an einem eingang eine spannung anlege 
leuchtet die zweite LED also ebenfalls.
danke im voraus für jede Hilfe

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