Mittelwertbildung von Messwerten in C mit Mega8

OP #992812
Hallo,
kann mir einer sagen warum meine Mittelwertbildung nicht funktioniert ?
Ich addiere 5 mal den Wert result: 15 + 15 + 15 + 15 + 15 (Momentanwert)
Dividiere diesen durch 5 und heraus kommt 241.
Warum ?
Hat jemand einen Link zum "Rechen mit C" ? Ich hatte schon bei der 
Umrechnung vom ADC zum Temperaturwert Probleme.
Geht
1
void adc_messung(void)
2
{
3
unsigned long temp;
4
unsigned int result;
5
unsigned int mittelwert;
6
unsigned int temp2;
7

8
for (uint8_t i=0; i<=5; ++i) 
9
{
10
ADCSRA |= (1<<ADSC);
11
loop_until_bit_is_clear (ADCSRA,ADSC);
12
temp = 50 * ADC;    
13
result = (temp*10/1024)-273;   
14
//Result passt noch mit 15
15
temp2 = mittelwert + result;
16
mittelwert = temp2;
17
_delay_ms(300);
18
}
19
result = mittelwert / 5;
20
//hier kommt nun als result-Wert 241 raus
21
itoa( result, Text, 10 );// und in Text verwandeln
22
return;
kennt ihr die einfachste Methode um den Mittelwert zweier Zahlen in C zu 
bekommen?

Voraussetzung:
Vorzeichenlose Ganzzahl Operanden, bei der Schnittstelle muss sicher 
gestellt werden, dass bei der Addition der Wertebereich von u8 nicht 
überschritten wird.

(Methode für höhere Präzission, Addieren + letztes Bit verwerfen)
1
u8_mittelwert = (u8_a1 + u8_a2) >> 1;

Alternative:
+ größerer Dynamik-Bereich
- ungenauer
1
u8_mittelwert = (u8_a1 >> 1) + (u8_a2 >> 1);

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.