hab mich mal an des programm für die zusatzplatine rangemacht. der plan: erstmal alles festlegen wie im heft. dann eine for schleife dass er zuerst i=1 hat mit den werten von koeff und gain für den bandpass 1 und rechnet dann die 2. for schleife aus, wie im heft. nachdem er das gemacht hat is i=2 usw. bis alle eingangswerte mit jedem filter berechnet wurden.
Code:
#include "myasuro.h"
#include "asuro.h"
#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 da aber ganze 17 errors drinne:
../ZUSATZ155.c:3:1: warning: "/*" within comment
../ZUSATZ155.c:4:1: warning: "/*" within comment
../ZUSATZ155.c:5:1: warning: "/*" within comment
../ZUSATZ155.c:6:1: warning: "/*" within comment
../ZUSATZ155.c:14: error: expected ')' before '*' token
../ZUSATZ155.c:20: warning: built-in function 'y0' declared as non-function
../ZUSATZ155.c:20: warning: built-in function 'y1' declared as non-function
../ZUSATZ155.c:24: warning: data definition has no type or storage class
../ZUSATZ155.c:24: warning: type defaults to 'int' in declaration of 'x1'
../ZUSATZ155.c:24: error: conflicting types for 'x1'
../ZUSATZ155.c:19: error: previous declaration of 'x1' was here
../ZUSATZ155.c:25: warning: data definition has no type or storage class
../ZUSATZ155.c:25: warning: type defaults to 'int' in declaration of 'x2'
../ZUSATZ155.c:25: error: conflicting types for 'x2'
../ZUSATZ155.c:19: error: previous declaration of 'x2' was here
../ZUSATZ155.c:26: warning: data definition has no type or storage class
../ZUSATZ155.c:26: warning: type defaults to 'int' in declaration of 'y0'
../ZUSATZ155.c:26: error: conflicting types for 'y0'
../ZUSATZ155.c:20: error: previous declaration of 'y0' was here
../ZUSATZ155.c:27: warning: data definition has no type or storage class
../ZUSATZ155.c:27: warning: type defaults to 'int' in declaration of 'y1'
../ZUSATZ155.c:27: error: conflicting types for 'y1'
../ZUSATZ155.c:20: error: previous declaration of 'y1' was here
../ZUSATZ155.c:28: warning: data definition has no type or storage class
../ZUSATZ155.c:28: warning: type defaults to 'int' in declaration of 'y2'
../ZUSATZ155.c:28: error: conflicting types for 'y2'
../ZUSATZ155.c:20: error: previous declaration of 'y2' was here
../ZUSATZ155.c:29: warning: data definition has no type or storage class
../ZUSATZ155.c:29: warning: type defaults to 'int' in declaration of 'x0'
../ZUSATZ155.c:29: error: conflicting types for 'x0'
../ZUSATZ155.c:19: error: previous declaration of 'x0' was here
../ZUSATZ155.c:30: warning: data definition has no type or storage class
../ZUSATZ155.c:30: warning: type defaults to 'int' in declaration of 'length'
../ZUSATZ155.c:32: error: expected identifier or '(' before 'for'
../ZUSATZ155.c:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
../ZUSATZ155.c:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
../ZUSATZ155.c:33: error: expected identifier or '(' before '{' token
kann mir helfen die erros zu beseitigen? bekomm die irgendwie net weg. außerdem: ist die grundidee richtig? TEIL 2 wäre halt dann, dass er die bestimmte LED für einen bestimmten Bandpass ansteuert der gerade aktiv ist. aber wie kann ich im programm festlegen wann welcher bandpass aktiv ist? da muss doch output dann einen bestimmten wert haben. vermutlich den wert der mittenfrequenz eines bandpasses oder???
Lesezeichen