Hallo,
ich versuche das jetzt so zu lösen:
Code:
for(;;)
{
char test[] = "Wert in Sektor\n\r";
char *p_test = test;
char test2[] = "hallo!\n\r";
char *p_test2 = test2;
for(i=1;i<51;i++)
{
if((i>0) & (i<=5))
{
sektor[1] += get_adc(0);
}
if((i>5) & (i<=10))
{
sektor[2] += get_adc(0);
}
if((i>10) & (i<=15))
{
sektor[3] += get_adc(0);
}
if((i>15) & (i<=20))
{
sektor[4] += get_adc(0);
}
if((i>20) & (i<=25))
{
sektor[5] += get_adc(0);
}
if((i>25) & (i<=30))
{
sektor[6] += get_adc(0);
}
if((i>30) & (i<=35))
{
sektor[7] += get_adc(0);
}
if((i>35) & (i<=40))
{
sektor[8] += get_adc(0);
}
if((i>40) & (i<=45))
{
sektor[9] += get_adc(0);
}
if((i>45) & (i<=50))
{
sektor[10] += get_adc(0);
}
waitms(200);
servo_goto(i++);
}
for(j=1;j<=10;j++)
{
sektor_2[j] = sektor[j] / 5;
*p_test2 = 0;
itoa(sektor_2[j], p_test2, 10);
send_string(p_test2);
send_string(p_test);
waitms(1000);
}
waitms(3000);
i=0;
j=0;
sektor[j] = 0;
sektor_2[j] = 0;
}
}
Leider habe ich das Gefühl, dass da noch irgendwo der Wurm drin ist.
Eigentlich sollte der ADC-Wert jeweils in den zugehörigen Sektor geschrieben werden, und nachher sollten die 10 Sektoren alle durch 5 geteilt werden, so dass ich jeweils einen Mittelwert herausbekomme.
Ich bekomme jedoch Werte >1024, sodass das nicht stimmen kann. Der letzte Wert beträgt immer 200, da ist also auch was faul.
Ich hoffe ihr könnt mir helfen, vllt. ist der Fehler ja auch nur ein kleiner Fehler, der ich als C-Anfänger nicht finde.
Gruß
Martin
Lesezeichen