I tried with
float y[30];
....
y[m] = (float)(1.0*y[m-1]+1.0*x[m]*T);
but result is the same. Even if I perform calculations on the paper, for example
x[n]={404, 448, 489, 526, 557, 580, 595, 600, 594, 579, 555, ...}
y(0)=200 // IC
y(1)=200+0.003*404 = 201.212
Y(2)= 201.212 + 0.003*448 = 202.556
Y(3)=202.556+0.003*489 = 204.023
...
and obtained curve is some kind of line...
When I did the same (with the same frequnecy, sampling time, etc.) in Matlab Simulnk, I got very nice results.
- - - Updated - - -
Very odd... When I used obtained samples as source to discrete-time integrator block in MATLAB I got the same results as with my microcontroller and Excel.