Der einfachheit halber erst mal mit 8bit...
Code:
void GetADC (void)
{
static unsigned char s_aucData[3];
static unsigned char s_ucCount;
unsigned char ucTmp;
s_ucCount++;
//ADC auslesen
ADCSR |= 0x40;
while (ADCSR & 0x40)
;
s_aucData[s_ucCount] = ADCH;
if (s_ucCount == 3)
{
mittelwert (s_aucData); //siehe Funktion oben...
s_ucCount = 0;
}
}
Ich weiß nicht genau, was Du machen willst, aber in der Regel ist eine fließende Mittelwertbildung sinnvoller. Fließend heißt, bei jedem Auslesen des ADCs fliegt der älteste Wert aus dem Array raus und der neue kommt hinzu.
aGruß,
askazo
Lesezeichen