2022-06-28 20:00:47 +00:00
|
|
|
#ifndef __DSP_FFT_H__
|
|
|
|
#define __DSP_FFT_H__
|
2021-04-05 19:18:30 +00:00
|
|
|
/*
|
|
|
|
* dsp.h
|
|
|
|
*
|
|
|
|
* Created: Mar 2021
|
|
|
|
* Author: Arjan te Marvelde
|
|
|
|
*
|
|
|
|
* See dsp.c for more information
|
|
|
|
*/
|
2021-04-03 19:39:24 +00:00
|
|
|
|
2022-07-10 12:25:36 +00:00
|
|
|
// 1 for FFT, 0 for time domain processing
|
|
|
|
#define DSP_FFT 0
|
2021-04-03 19:39:24 +00:00
|
|
|
|
2021-11-05 12:00:21 +00:00
|
|
|
|
2022-06-28 20:00:47 +00:00
|
|
|
/*
|
|
|
|
* Callback timeout is TIM_US, value in usec
|
|
|
|
* The carrier offset is !=0 only in FFT case.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#if DSP_FFT == 1
|
2021-11-05 12:00:21 +00:00
|
|
|
|
2022-06-28 20:00:47 +00:00
|
|
|
#define TIM_US 64
|
|
|
|
#define S_RATE 15625 // 1e6/TIM_US
|
2022-07-10 12:25:36 +00:00
|
|
|
#define FC_OFFSET 3906 // RX carrier in bin FFT_SIZE/4 ==> S_RATE/4
|
2021-11-05 12:00:21 +00:00
|
|
|
|
2022-06-28 20:00:47 +00:00
|
|
|
#else
|
|
|
|
|
|
|
|
#define TIM_US 64
|
|
|
|
#define S_RATE 15625 // 1e6/TIM_US
|
|
|
|
#define FC_OFFSET 0 // Must be 0 for time-domain DSP
|
|
|
|
|
|
|
|
#endif
|
2021-11-05 12:00:21 +00:00
|
|
|
|
2021-05-15 20:12:44 +00:00
|
|
|
|
2022-06-28 20:00:47 +00:00
|
|
|
/** DSP module interface **/
|
2021-04-12 20:21:40 +00:00
|
|
|
|
2022-07-14 19:15:09 +00:00
|
|
|
extern volatile uint32_t s_rssi;
|
|
|
|
int get_sval(void);
|
|
|
|
|
2022-06-28 20:00:47 +00:00
|
|
|
extern volatile bool tx_enabled; // Determined by (vox_active || ptt_active)
|
|
|
|
|
|
|
|
#define VOX_OFF 0
|
|
|
|
#define VOX_LOW 1
|
|
|
|
#define VOX_MEDIUM 2
|
|
|
|
#define VOX_HIGH 3
|
|
|
|
void dsp_setvox(int vox);
|
|
|
|
|
|
|
|
#define MODE_USB 0
|
|
|
|
#define MODE_LSB 1
|
|
|
|
#define MODE_AM 2
|
|
|
|
#define MODE_CW 3
|
|
|
|
void dsp_setmode(int mode);
|
|
|
|
|
|
|
|
#define AGC_NONE 0
|
|
|
|
#define AGC_SLOW 1
|
|
|
|
#define AGC_FAST 2
|
|
|
|
void dsp_setagc(int agc);
|
|
|
|
|
|
|
|
void dsp_init();
|
2021-04-03 19:39:24 +00:00
|
|
|
|
|
|
|
#endif
|