Gast
#3534095
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!