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; |