Forum: Mikrocontroller und Digitale Elektronik AD-Wandlung Problem


von Quizduell (Gast)


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!

von MaWin (Gast)


Lesenswert?

Quizduell schrieb:
> Hat jemand eine Idee woran es liegen kann?

Es fehlt noch der nötige Programmcode.

von Cyblord -. (cyblord)


Lesenswert?

Der Code ist an sich ok.

von Quizduell (Gast)


Lesenswert?

@MaWin

Was genau fehlt denn an Code?

von spess53 (Gast)


Lesenswert?

Hi

>Was genau fehlt denn an Code?

Der ADC wird nie gestartet  -> ADSC-Bit in ADCSRA.

MfG Spess

von Cyblord -. (cyblord)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Was genau fehlt denn an Code?
>
> Der ADC wird nie gestartet  -> ADSC-Bit in ADCSRA.

Holla, der Spess hat mal wieder sowas von recht.

von Quizduell (Gast)


Lesenswert?

@spess53

Du hast recht, es funktioniert jetzt! :)

Ich dachte ich starte die Wandlung schon mit ADATE.

von spess53 (Gast)


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

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.