Pole v C

Pavel Troller patrol@sinus.cz
Středa Listopad 26 14:12:31 CET 2008


Zdravím,

> Zdravím,
> 
> mám takový problém v C.
> 
> Ve struktuře mám deklarované pole e (zatím) pevné velikosti. Mám ukazatel na
> strukturu, ten předávám jako parametr funkci, a chci do pole ukládat
> hodnoty, ze kterých budu počítat klouzavý průměr. V e_arr_len je uložená
> délka pole.
> 
> Takto je deklarované pole (ve struktuře):
> 
> volatile int16_t e[5];
> 
> Toto nefunguje:
> 
> for(uint8_t i=0; i<((*m).e_arr_len-1);i++)
>   (*m).e[i] = (*m).e[i+1];
> 
> A toto ano:
> 
> (*m).e[0] = (*m).e[1];
> (*m).e[1] = (*m).e[2];
> (*m).e[2] = (*m).e[3];
> (*m).e[4] = ((*m).req_speed - (*m).act_speed);
> 

Není mi jasné, jak to může chodit ?? Protože mi tam chybí před tím posledním
řádkem ještě

(*m).e[3] = (*m).e[4];

Myslel jsem si, že se to jen nepřeneslo do toho mailu, ale stahnul jsem si ten
zdroják a v něm je to taky...

Nebo někde něco nechápu ? Inu, robotik nejsem :-)

S pozdravem Pavel Troller



Další informace o konferenci Hw-list