somehow averaging fails (avg cycle stops too early. So in the result of avg there is sum of all runs in the start and some values in line are forbidden at the end of avg cycle). Fixed avg cycle numbering -> averaged value have the same amplitude as raw value
This commit is contained in:
@ -235,7 +235,6 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
|
||||
|
||||
if ((DY_SYN_2_value == 1)&& (DY_SYN_2_value_prev == 0)){ //new cycle started
|
||||
//data[data_I] = 0xB00000000;
|
||||
Proc_state.average_N ++;
|
||||
Proc_state.AVG_buff_I = 0;
|
||||
Proc_state.LFSM_state = CYCLE_STARTED;
|
||||
if (Proc_state.average_N >= Proc_state.average_N_max){ //whole average ended
|
||||
@ -259,8 +258,7 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
|
||||
}
|
||||
|
||||
TX_buff_state = TODO_TX;
|
||||
//hdma_send_req_start(TX_buff, TX_BUFF_SIZE, 0);
|
||||
//return size;
|
||||
|
||||
|
||||
// for (uint32_t i = 0; i < TX_BUFF_SIZE; ++i){
|
||||
// TX_buff_shadow[i] = TX_buff[i];
|
||||
@ -274,8 +272,12 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
|
||||
// TX_buff_state = TX_DONE;
|
||||
Proc_state.average_N = 0;
|
||||
|
||||
//hdma_send_req_start(TX_buff, TX_buff_I, 0);
|
||||
//return data_I;
|
||||
|
||||
}else{ //
|
||||
Proc_state.AVG_state = STEP_RUNNING;
|
||||
Proc_state.average_N ++;
|
||||
//Proc_state.AVG_buff_I = 0;
|
||||
}
|
||||
}
|
||||
@ -286,7 +288,7 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
|
||||
// if (Proc_state.LFSM_state == CYCLE_STARTED){
|
||||
if (1){
|
||||
// AVG_buff[Proc_state.AVG_buff_I++] = 0xC0000000 | (0x00FFFFFF & (AVG_buff[Proc_state.AVG_buff_I] + val));
|
||||
AVG_buff[Proc_state.AVG_buff_I] = 0xC0000000 | ((val/10 + AVG_buff[Proc_state.AVG_buff_I]) & 0xFFFFFF);
|
||||
AVG_buff[Proc_state.AVG_buff_I] = 0xC0000000 | ((val/Proc_state.average_N_max + AVG_buff[Proc_state.AVG_buff_I]) & 0xFFFFFF);
|
||||
// AVG_buff[Proc_state.AVG_buff_I] = 0xC0000000 | some_i++;
|
||||
// AVG_buff[Proc_state.AVG_buff_I] = 0xC0000000 | val;
|
||||
//AVG_buff[Proc_state.AVG_buff_I++] = 0xC0000000;
|
||||
@ -585,7 +587,7 @@ void usr_cmd_process(t_l502_bf_cmd *cmd) {
|
||||
Proc_state.mode = AVG;
|
||||
Proc_state.mode_next = AVG;
|
||||
Proc_state.LFSM_state = CYCLE_UNKNOWN;
|
||||
Proc_state.average_N_max = 10;
|
||||
Proc_state.average_N_max = 5;
|
||||
// Proc_state.average_N_max = cmd->param;
|
||||
Proc_state.average_N = 0;
|
||||
Proc_state.TX_buff_I = 0;
|
||||
|
||||
Reference in New Issue
Block a user