Mittelwert bilden

Gast #3070711
Lesenswert?

Hi Leute!

Ich möchte den Mittelwert eines EKG-Signals bilden (N=30):

Ich habe die Funktion folgendermaßen implementiert:
1
signed long  mov_int(signed long *data)
2
{
3
  signed long y=0,i=0;
4
  
5
  for(i=0;i>=29;i++)
6
  {
7
    y += data[i];
8
  }  
9
  y = y/30;
10

11
  USART_Transmit_4Bytes(y);
12

13
  return y;
14
}

Ich bekomme immer nur 0 als Wert zurück obwohl die Eingangswerte nicht 0 
sind.
Zur Überprüfung der Eingangswerte habe ich die Funktion so geändert und 
mir immer den aktuellsten Wert von data anzeigen lassen. Da erhalte ich 
immer die richtigen Werte.
1
signed long  mov_int(signed long *data, unsigned char n)
2
{
3
  signed long y=0,i=0;
4

5
  USART_Transmit_4Bytes(data[n]);
6
  
7
  for(i=0;i>=29;i++)
8
  {
9
    y += data[i];
10
  }  
11
  y = y/30;
12
  
13
  return y;
14
}

Dann habe ich die Funktion noch so abgeändert dass sie mir jeweils die 
Werte von y in der for-schleife ausgegeben werden.
1
signed long  mov_int(signed long *data, unsigned char n)
2
{
3
  signed long y=0,i=0;
4

5
  for(i=0;i>=29;i++)
6
  {
7
    y += data[i];
8
    USART_Transmit_4Bytes(y);
9
  }  
10

11
  y = y/30;
12
  
13
  return y;
14
}
Hier bekomme ich gar keine Werte ausgegeben. Hat jemand eine Idee woran 
das liegen könnte?
#3070785
Lesenswert?

Nur mal so als weiterer Tip:

Wenn man in C, obwohl es erlaubt ist, nicht alles 'auf Knirsch' 
schreibt,
1
  for(i=0;i>=29;i++)

 sondern sich ein paar Leerzeichen reinmacht
1
  for (i = 0; i >= 29; i++)
dann 'sieht' man auch viel mehr. Schliesslich sind wir alle seit 
Kindesbeinen an darauf trainiert worden, dass zwischen Wörtern in 
geschriebener Sprache ein Leerraum steht. Das so trainierte Gehirn tut 
sich viel leichter den Sinn einer Buchstabensuppe zu erfassen, als wenn 
es aus dem Zusammenhang heraus erst mal die einzelnen "Wörter" 
identifizieren muss.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren