vielen Dank für eure Hilfe, wäre schön, wenn es nun gehen würde, macht
es aber nicht. ich habe jetzt ein Poti am pin 25 (ADC2). Da die Messung
in einer Schleife steckt müsste sich eigentlich der Wert ändern. aber
egal ob ich 0V oder Uref (ist jetzt AVcc) anliegt es kommt immer der
gleiche Misst raus, gerade als wenn es der falsche pin wäre.
Hat jemand eine Idee?
uint16_t value;
uint8_t i;
ADMUX =0;
ADCSRA=0;
ADMUX |= (1<<MUX1)|(1<<REFS0);
ADCSRA |= (1<<ADEN) | (1<<ADPS0) |(1<<ADPS2);
while(1)
{
ADCSRA |= (1<<ADSC);
while (ADCSRA & (1<<ADSC)) {}
value = ADCW;
value = 0;
for (i=0;i<4;i++)
{
ADCSRA |= (1<<ADSC);
while (ADCSRA & (1<<ADSC)) {}
value += ADCW;
//value += 1234;
}
value /= 4;
value = (uint32_t) value * 2720 / 1024;
int_2_BCD ( value,& anzeige_ziffern);
};
Die Funktion int_2_BCD() ist für die Anzeige. Sie legt den Messwert als
BCD in einer globalen Variablen ab, die dann über ISR(TIMER0_OVF_vect)
auf eine 7 Segment Anzeige angezeigt wird. Diese Funktion geht
eigentlich, da ein fester Wert (//value += 1234;) richtig angezeigt
wird.
Vielen Dank!
ralph