Moin!!!
Mein Prog funktioniert jetzt. Hier der Code:
Code:
#include <avr/io.h>
#include <stdint.h>
#define F_CPU 1000000UL
int main(void)
{
uint16_t result;
DDRC = (1<<PC0);
ADMUX = 0x00; //AREF, resultat rechtsbündig, ADC-Eingang ADC0
ADCSRA = ((1<<ADEN) | (1<<ADPS1) | (1<<ADPS0)); //ADC eingeschaltet, Teilungsfaktor 8
while(1)
{
ADCSRA |= (1<<ADSC);
while (ADCSRA & (1<<ADSC))
{
;
}
result = ADCL;
result += (ADCH<<8);
if (result >= 512) //LED geht ziemlich genau bei 2,5V an!!!
{
PORTC |= (1<<PC0);
}
else
PORTC &= ~(1<<PC0);
}
}
Jetzt stellt sich mir nur noch so die Frage, was das mit dem Autotrigger bedeutet. Das hab ich im Datenblatt nicht so ganz verstanden.
Ich hab ja den 5.Bit in ADCSRA nicht gesetzt und auch das SFIOR register ganz außen vor gelassen. Laut der Tabelle im Datenblatt müsste jetzt FreeRunning Mode eingeschaltet sein. Hab ja alles für Single convention vorbereitet.
Warum klappt das dann trotzdem?
Was hat das mit dem Autotrigger auf sich?
MfG Jan
Lesezeichen