Forum: Mikrocontroller und Digitale Elektronik 2 Analoge Spannungen mit STK500 und ATDVK90CAN1 messen


von ManuelFFL (Gast)


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

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.