AD-Wandlung Problem

Gast #3534095
Lesenswert?

Guten Tag,

ich habe ein Problem mit der AD-Wandlung bei meinem ATmega16 16PU.
Ich habe ein kleines Programm in C, das am ADC0 eine Spannung einliest 
und am PORTD digital wieder ausgibt.

#include <avr/io.h>
#include <avr/interrupt.h>


ISR(ADC_vect)
{
  PORTD = ADCH;
}

int main(void)
{

  DDRD = 0b11111111;

  ADMUX |= (1<<REFS1) | (1<<REFS0) | (1<<ADLAR);
  ADCSRA|= (1<<ADEN) | (1<<ADATE) | (1<<ADIE) | (1<<ADPS2);
  sei();

    while(1)
    {

    }
}

Mein µC läuft mit 1 MHz internem Takt, den Prescaler habe ich auf 16 
eingestellt. Außerdem benutze ich die interne Referenzspannung (REFS1 
und REFS0), habe da einen Kondensator 100n gegen Masse. An AVCC ist eine 
10µH Spule gegen VCC uns ein 100n gegen Masse.

Der Controller an sich funktioniert, das einfache LED ansteuern 
funktioniert.

Leider kann ich Spannungen am ADC0 anlegen wie ich will, da tut sich 
nichts. Hat jemand eine Idee woran es liegen kann?

Grüße!
Gast #3534139
Lesenswert?

Hi

>Ich dachte ich starte die Wandlung schon mit ADATE.

Da du in ADCSRB keine andere Triggerquelle gewählt hast läuft der ADC im 
Free Running Mode. D.h. der ADC triggert sich selbst. Dazu muss er aber 
einmal angeschubst werden. Danach läuft er allein.

MfG Spess

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