Lines Matching refs:p
48 MppData *p = mpp_malloc_size(MppData, sizeof(MppData) + sizeof(RK_S32) * size); in mpp_data_init() local
49 if (NULL == p) { in mpp_data_init()
53 p->size = size; in mpp_data_init()
54 p->len = 0; in mpp_data_init()
55 p->pos = 0; in mpp_data_init()
56 p->val = (RK_S32 *)(p + 1); in mpp_data_init()
57 *data = p; in mpp_data_init()
62 void mpp_data_deinit(MppData *p) in mpp_data_deinit() argument
64 if (p) in mpp_data_deinit()
65 mpp_free(p); in mpp_data_deinit()
68 void mpp_data_update(MppData *p, RK_S32 val) in mpp_data_update() argument
70 mpp_assert(p); in mpp_data_update()
72 p->val[p->pos] = val; in mpp_data_update()
74 if (++p->pos >= p->size) in mpp_data_update()
75 p->pos = 0; in mpp_data_update()
77 if (p->len < p->size) in mpp_data_update()
78 p->len++; in mpp_data_update()
81 RK_S32 mpp_data_avg(MppData *p, RK_S32 len, RK_S32 num, RK_S32 denom) in mpp_data_avg() argument
83 mpp_assert(p); in mpp_data_avg()
87 RK_S32 pos = p->pos; in mpp_data_avg()
89 if (!p->len) in mpp_data_avg()
92 if (len < 0 || len > p->len) in mpp_data_avg()
93 len = p->len; in mpp_data_avg()
101 pos = p->len - 1; in mpp_data_avg()
103 sum += p->val[pos]; in mpp_data_avg()
112 sum = p->val[--pos]; in mpp_data_avg()
117 pos = p->len - 1; in mpp_data_avg()
119 sum += p->val[pos] * acc_num / acc_denom; in mpp_data_avg()
127 void mpp_pid_reset(MppPIDCtx *p) in mpp_pid_reset() argument
129 p->p = 0; in mpp_pid_reset()
130 p->i = 0; in mpp_pid_reset()
131 p->d = 0; in mpp_pid_reset()
132 p->count = 0; in mpp_pid_reset()
151 mpp_rc_dbg_rc("RC: pid ctx %p before update P %d I %d D %d\n", ctx, ctx->p, ctx->i, ctx->d); in mpp_pid_update()
153 ctx->d = val - ctx->p; /* Derivative */ in mpp_pid_update()
155 ctx->p = val; /* Proportional */ in mpp_pid_update()
157 mpp_rc_dbg_rc("RC: pid ctx %p after update P %d I %d D %d\n", ctx, ctx->p, ctx->i, ctx->d); in mpp_pid_update()
166 RK_S32 mpp_pid_calc(MppPIDCtx *p) in mpp_pid_calc() argument
168 RK_S32 a = p->p * p->coef_p + p->i * p->coef_i + p->d * p->coef_d; in mpp_pid_calc()
169 RK_S32 b = p->div; in mpp_pid_calc()
171 mpp_rc_dbg_rc("RC: pid ctx %p p %10d coef %d\n", p, p->p, p->coef_p); in mpp_pid_calc()
172 mpp_rc_dbg_rc("RC: pid ctx %p i %10d coef %d\n", p, p->i, p->coef_i); in mpp_pid_calc()
173 mpp_rc_dbg_rc("RC: pid ctx %p d %10d coef %d\n", p, p->d, p->coef_d); in mpp_pid_calc()
174 mpp_rc_dbg_rc("RC: pid ctx %p a %10d b %d\n", p, a, b); in mpp_pid_calc()