introduced FFT into dataprocessor func. But it FFT is not enabled yet

This commit is contained in:
2025-10-09 16:15:19 +03:00
parent 00f225c393
commit eafa833ed6
21 changed files with 10702 additions and 10559 deletions

View File

@ -45,7 +45,8 @@ volatile uint32_t TX_buff_shadow[TX_BUFF_SIZE] __attribute__((section(".sdram_no
//volatile uint32_t RAW_data_buff[RAW_DATA_BUFF_SIZE] __attribute__((section(".sdram_noinit")));
volatile uint32_t AVG_buff[AVG_BUFF_SIZE] __attribute__((section(".sdram_noinit")));
//volatile uint32_t AVG_buff_B[AVG_BUFF_SIZE] __attribute__((section(".sdram_noinit")));
volatile uint32_t FFT_buff[FFT_BUFF_SIZE] __attribute__((section(".sdram_noinit")));
volatile uint64_t FFT_buff[FFT_BUFF_SIZE] __attribute__((section(".sdram_noinit")));

View File

@ -87,7 +87,7 @@ extern volatile uint32_t TX_buff_shadow[]; //size: TX_BUFF_SIZE
//extern volatile uint32_t RAW_data_buff[]; //size: RAW_DATA_BUFF_SIZE
extern volatile uint32_t AVG_buff[]; //size: AVG_BUFF_SIZE
//extern volatile uint32_t AVG_buff_B[]; //size: AVG_BUFF_SIZE
extern volatile uint32_t FFT_buff[]; //size: FFT_BUFF_SIZE
extern volatile uint64_t FFT_buff[]; //size: FFT_BUFF_SIZE
volatile uint32_t TX_marker[10] = {0xFE00000F,0xFE0000F0, 0xFE000F00, 0xFE00F000, 0xFE0F0000,0xFEF00000, 0xFE0F0000,0xFE00F000, 0xFE000F00, 0xFE0000F0};
@ -142,13 +142,17 @@ uint8_t DY_SYN_2_value_prev = 0;
uint32_t dataprocessor(uint32_t* AVG_buff, uint32_t AVG_buff_I_max, uint32_t* FFT_buff, uint8_t mode){
uint32_t dataprocessor(uint32_t* AVG_buff, uint32_t AVG_buff_I_max, uint64_t* FFT_buff, uint8_t mode){
uint32_t FFT_buff_I = 0;
if (mode == TRANSPARENT){
uint32_t i = 0;
while ((FFT_buff_I < FFT_BUFF_SIZE) && (i < AVG_BUFF_SIZE)){
FFT_buff[FFT_buff_I++] = AVG_buff[i++];
}
}else if (mode == FFT){
uint32_t i = 0;
//void FFT_fp(int64_t* inp, uint32_t inp_L, int64_t* buf)
FFT_fp(AVG_buff, FFT_INP_DATA_L, FFT_buff);
}
return FFT_buff_I;
@ -267,6 +271,7 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
uint32_t FFT_res_size = dataprocessor(AVG_buff, Proc_state.AVG_buff_I_last, FFT_buff, TRANSPARENT);
//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++){
@ -274,7 +279,7 @@ uint32_t usr_in_proc_data(uint32_t* data, uint32_t size) {
// while ((TX_buff_I < TX_BUFF_SIZE) && (i < AVG_BUFF_SIZE)){
// TX_buff[TX_buff_I++] = AVG_buff[i++];
while ((TX_buff_I < TX_BUFF_SIZE) && (i < FFT_BUFF_SIZE)){
TX_buff[TX_buff_I++] = FFT_buff[i++];
TX_buff[TX_buff_I++] = 0xFF000000 | ((uint32_t)FFT_buff[i++]);
//TX_buff[TX_buff_I++] = 0xB0000000 + Proc_state.average_N;
//TX_buff[TX_buff_I++] = 0xC1000000;
}

View File

@ -9,10 +9,15 @@
пользователем для написания своих алгоритмов обработки данных и реализации
пользовательских команд.
******************************************************************************/
#define FFT_INP_DATA_L (1<<10)
//#define TX_BUFF_SIZE 100000
#define RAW_DATA_BUFF_SIZE 1000
#define AVG_BUFF_SIZE 2000
#define FFT_BUFF_SIZE 2000
#define AVG_BUFF_SIZE FFT_INP_DATA_L
#define FFT_BUFF_SIZE (FFT_INP_DATA_L*2)
#define FFT_INP_DATA_L (1<<10)
//#define L502_SPORT_IN_BUF_SIZE (2048*1024)