fixed and approved trigger searcher logic in AVG module
This commit is contained in:
@ -197,10 +197,13 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
|
||||
if (TX_buff_state == FILLING){
|
||||
data_I = 0;
|
||||
TX_buff_I = 0;
|
||||
while((++data_I < size )&& (++TX_buff_I < TX_BUFF_SIZE)){
|
||||
while((data_I + 1 < size )&& (TX_buff_I + 1 < TX_BUFF_SIZE)){
|
||||
//;
|
||||
TX_buff[TX_buff_I] = data[data_I];
|
||||
}
|
||||
|
||||
TX_buff_I++;
|
||||
data_I++;
|
||||
}
|
||||
size_processed = data_I;
|
||||
|
||||
TX_buff_state = TODO_TX;
|
||||
@ -235,16 +238,16 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
|
||||
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
|
||||
Proc_state.average_N = 0;
|
||||
//Proc_state.average_N = 0;
|
||||
//if (1){
|
||||
Proc_state.AVG_state = FULLY_COMPLETED;
|
||||
//averaging completed => copy average results to TX_buff and start avg again
|
||||
TX_buff_I = 0;
|
||||
for (uint32_t i = 0; ((TX_buff_I < TX_BUFF_SIZE) && (i < AVG_BUFF_SIZE)); i++){
|
||||
// uint32_t i = 0;
|
||||
// while ((TX_buff_I < TX_BUFF_SIZE) && (i < AVG_BUFF_SIZE)){
|
||||
//TX_buff[TX_buff_I++] = AVG_buff[i];
|
||||
TX_buff[TX_buff_I++] = 0xB0000000 + Proc_state.average_N;
|
||||
// for (uint32_t i = 0; ((TX_buff_I < TX_BUFF_SIZE) && (i < AVG_BUFF_SIZE)); i++){
|
||||
uint32_t i = 0;
|
||||
while ((TX_buff_I < TX_BUFF_SIZE) && (i < AVG_BUFF_SIZE)){
|
||||
TX_buff[TX_buff_I++] = AVG_buff[i];
|
||||
//TX_buff[TX_buff_I++] = 0xB0000000 + Proc_state.average_N;
|
||||
//TX_buff[TX_buff_I++] = 0xC1000000;
|
||||
}
|
||||
|
||||
@ -254,9 +257,9 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
|
||||
AVG_buff[i] = 0xC2321123;
|
||||
}
|
||||
|
||||
//TX_buff_state = TODO_TX;
|
||||
hdma_send_req_start(TX_buff, TX_BUFF_SIZE, 0);
|
||||
return 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];
|
||||
@ -268,22 +271,22 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
|
||||
// hdma_send_req_start(TX_buff, TX_BUFF_SIZE, 0);
|
||||
//TX_buff_state = TRANSMITTING;
|
||||
// TX_buff_state = TX_DONE;
|
||||
|
||||
Proc_state.average_N = 0;
|
||||
|
||||
}else{ //
|
||||
Proc_state.AVG_state = STEP_RUNNING;
|
||||
Proc_state.AVG_buff_I = 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}else if(header == 0xD0){ //first phy channel
|
||||
// if (Proc_state.AVG_state == STEP_RUNNING){
|
||||
if (Proc_state.AVG_state == STEP_RUNNING){
|
||||
// if (1){
|
||||
// if (Proc_state.LFSM_state == CYCLE_STARTED){
|
||||
if (1){
|
||||
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 + AVG_buff[Proc_state.AVG_buff_I]) & 0xFFFFFF);
|
||||
// AVG_buff[Proc_state.AVG_buff_I] = 0xC0000000 | ((val + AVG_buff[Proc_state.AVG_buff_I]) & 0xFFFFFF);
|
||||
AVG_buff[Proc_state.AVG_buff_I] = 0xC0000000 | val;
|
||||
//AVG_buff[Proc_state.AVG_buff_I++] = 0xC0000000;
|
||||
Proc_state.AVG_buff_I++;
|
||||
if (Proc_state.AVG_buff_I >= AVG_BUFF_SIZE){
|
||||
@ -580,7 +583,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 = 30;
|
||||
Proc_state.average_N_max = 10;
|
||||
// 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