so also

Code:
#include <inttypes.h>

/* Teil 1. Bandpassfilter*/



void bpfilter(int_8 *input,int8_t *output, uint16_t *length, int32_t koeff)
{

int32_t a2;                                       /* a2 als Integervariable festlegen*/
int32_t a3;                                       /* a3 als Integervariable festlegen*/
int32_t GAIN_FRAC;                                /* GAIN_FRAC als Integervariable festlegen*/
int32_t x0,x1,x2;                                 /* x0,x1,x2 als Integervariable festlegen*/
int32_t y0,y1,y2;                                 /* y0,y1,y2 Integervariable festlegen*/
uint16_t n;                                       /* n Integervariable festlegen*/
uint16_t i;                                       /* i als Integervariable festlegen*/


x1=0;                                             /* Wert für x1 festlegen*/
x2=0;                                             /* Wert für x2 festlegen*/
y0=0;                                             /* Wert für y0 festlegen*/
y1=0;                                             /* Wert für y1 festlegen*/
y2=0;                                             /* Wert für y2 festlegen*/
x0=1;                                             /* Wert für x0 festlegen*/
length=100;										  /* Wert für length festlegen*/

  for (i==1;i<7;i++)						      /* Schleife zählt bis 6 hoch, um die Werte mit jedem Bandpass zu filtern*/
  {
    if (i==1)                                     /* Schleife 1 mit den Werten für Bandpass 1*/
	   {
	    a2=2;
	    a3=3;
	    GAIN_FRAC=4;
	   }
	if (i==2)									  /* Schleife 2 mit den Werten fü Bandpass 2*/
	   {
        a2=1;
	    a3=2;
	    GAIN_FRAC=3;
	   }
	if (i==3)                                     /* Schleife 3 mit den Werten für Bandpass 3*/
	   {
        a2=3;
	    a3=2;
	    GAIN_FRAC=1;
	   }
    if (i==4)                                     /* Schleife 4 mit den Werten für Bandpass 4*/
	   {
        a2=4;
	    a3=2;
	    GAIN_FRAC=3;
	   }
    if (i==5)                                     /* Schleife 5 mit den Werten für Bandpass 5*/
	   {
        a2=1;
	    a3=1;
	    GAIN_FRAC=1;
	   }
    if (i==6)                                     /* Schleife 6 mit den Werten für Bandpass 6*/
	   {
        a2=2;
	    a3=4;
	    GAIN_FRAC=3;
	   }

	     for (n==0;n<length;n++)                 /* Schleife bis n alle Eingangswerte verarbeitet hat (length legt die Anzahl der Eingangswerte fest)*/
		   {
		   x0=input;                             /* x0 als Eingang festlegen*/
		   y0=x0-x2-((a2*y1)>>16)-((a3*y2)>>16); /* Gleichung um y0 zu berechnen*/		   
		   x2=x1;
		   x1=x0;
		   y2=y1;
		   y1=y0;

		   output[n]=((y0*GAIN_FRAC)>>16);       /* Gleichung um Ausgang zu berechnen*/
		   }

    printf(output[n]);                           /* Ergebnis soll am Bildschirm angeszeigt werden*/
  }


/* Teil 2. LEDs ANSTEUERN und Befehl erstellen*/

/* Teil 3. Versenden des Befehls über IR-DIODE*/
}
hab jetzt keine warnings und "nur"noch 1 error drin.

../ZUSATZ155.c:16: error: expected ')' before '*' token
make: *** [ZUSATZ155.o] Error 1
Build failed with 1 errors and 0 warnings...

aber den verstehe ich nicht???

ich hab kurz eine verständnis frage. durch die gleichung wird ja der ausgangswert berechnet. und das mit allen verschiedenen koeffizienten. aber muss denn nicht y0 wieder auf 0 gesetzt werden nach der berechnung mit i=1? das man mit i=2 wieder von vorne anfangen kann?
und dann zu teil 2. es sollen ja LEDs angesteuert werden. LED1 soll leuchten wenn Bandpass 1 (also i=1) aktiv ist, also wenn die eingehende frequenz dem des bandpasses gleich ist. wie würdest du denn dann das im 2. teil machen? irgendwie so vielleicht:
if x0=y0 von i=1 dann LED 1 leuchtet
if x0=y0 von i=2 dann LED 2 leuchtet
??

beim 3. teil. ich möchte dass bandpass 2 aktiv fall 1 ist, bandpass 3 aktiv fall 2, bandpass 4 aktiv fall 3, bandpass 5 aktiv fall 4.
über die IR Diode soll dann z.b. "fall 1" gesendet werden. wie kann man das machen?

im programm des ASUROs wird das dann erkannt und einer bewegung zugeordnet:

Code:
#include <inttypes.h>
#include "asuro.h"

#define aus MotorDir(BREAK,BREAK)
uint8_t chgetchar()

void main()
{

   while(1)
   {

      command = chgetchar();

      switch(command)
      {
           fall '1':
           {
            MotorDir(FWD,FWD);
       MotorSpeed(50,50);
            Msleep(70);
           
         }
         break;
           fall '2':
           {
            MotorDir(RWD,RWD);
            MotorSpeed(50,50);
            Msleep(70);
           
         }
         break;
           fall '3':
           {
            MotorDir(FWD,FWD);
            MotorSpeed(50,0);
            Msleep(70);
           
         }
         break;
           fall '4':
           {
            MotorDir(FWD,FWD);
            MotorSpeed(0,50);
            Msleep(70);
           
         }
         break;
         default:
         {
         }break;
      }
   }     

}

ich hoffe habe das mit == und = jetzt richtig gemacht, habs nämlich nachgeschlagen...