Forum: Mikrocontroller und Digitale Elektronik ADC - Problem


von Domagoj Mihalic (Gast)


Lesenswert?

Hallo!

Habe mir hier einen kleinen c-Code zum Ausgeben eines Analogwertes
gebastelt. Das Problem ist nun folgendes: Die Umwandlung
(Konvertierung) wird nur einmal durchgeführt, und zwar beim Starten.
Um eine neue AD-Wandlung durchzuführen bzw. den ADCL-Wert zu
aktualisieren muss ich somit jedesmal den uc,ATMega16 resetieren.
Ich bitte um Aufklärung

mfg Domic


int main (void)
{
  DDRB = 0xFF;

  ADCSRA = 1<<ADEN | 1<<ADPS0 | 1<<ADPS1 | 1<<ADPS2;
  ADMUX = 0x00;
  SFIOR = 0x00;

  ADCSRA |= 1<<ADSC;

  for (;;)
  {
    if(!(ADCSRA & 1<<ADSC))
    {
      PORTB = ~ADCL;
      ADCSRA = 1<<ADSC;
      /*Konvertierung wieder starten, was anscheinend nicht
      funktioniert, bzw. der ADCL Wert wird nicht aktualisiert*/
    }
  }
  return 0;
}

von Sebastian Wille (Gast)


Lesenswert?

Hi,

arbeitest Du auch im free running mode?!?

Sebastian

von Domagoj Mihalic (Gast)


Lesenswert?

warum free-running, ist doch nicht notwendig wenn ich
das ADSC-Bit jedesmal wieder auf 1 setze, oder?

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.