Files
squeow/squeow_sw/Inc/squeow.h
nzasch b9232f66b0 v1.2
2025-01-28 19:01:22 +01:00

71 lines
1.8 KiB
C

#define SYS_TICK_PRESCALE_10HZ 0
#define SYS_TICK_PRESCALE_1HZ 10
#define STATO_AUDIO_DISCONNESSO 0
#define STATO_AUDIO_CONNESSO 1
#define STATO_AUDIO_RIPRODUZIONE 2
#define STATO_AUDIO_TONO 3
#define STATO_AUDIO_ADC 4
#define SAMPLES_BUFFER_SIZE (1024) ///< deve essere ^2
#define SAMPLES_BUFFER_SIZE_MASK (SAMPLES_BUFFER_SIZE - 1)
#define SINE_INCREMENT 0.314
#define DEFAULT_SYNTH_FREQUENCY 1359000UL
#define SOGLIA_TEMPERATURA 2048
#define SOGLIA_CORRENTE 2048
#define SOGLIA_DIRETTA 2048
#define SOGLIA_RIFLESSA 2048
#define max(x,y) (((x) >= (y)) ? (x) : (y))
// SYS
extern uint8_t sys_tick, sys_tick_prescale, pwm_tick;
// UART
extern UART_HandleTypeDef huart1;
#define UART_RX_BUF_SIZE 64
extern uint8_t UART_RX_buf[UART_RX_BUF_SIZE];
// SYNTH
extern uint32_t freq;
// ADC1
extern uint16_t adc1_valore;
// ADC2
extern uint16_t adc2_valori[4];
extern uint8_t adc2_done, adc_blocco, adc_allarmi[4];
// audio
extern uint16_t sample_value;
extern uint8_t stato_audio;
extern double sine_increment;
extern uint16_t samples_ringbuf[SAMPLES_BUFFER_SIZE]; ///< buffer ad anello dei dati RX
extern uint32_t samples_ringbuf_input_index, samples_ringbuf_output_index;
extern uint8_t usb_audio_tick;
// VU
void adc_rileva_soglie(uint16_t *adc_valori);
// MOD
extern uint16_t pwm_value1, pwm_value2, pwm_value3, pwm_value4;
extern uint8_t rails_number;
extern UART_HandleTypeDef huart1;
extern ADC_HandleTypeDef hadc1;
extern ADC_HandleTypeDef hadc2;
// funzie
uint32_t sat_sub(uint16_t x, uint16_t y);
uint16_t u16_sine(void);
uint16_t u12_sine(void);
uint16_t u11_sine(void);
void store_sample(uint16_t sample);
void store_samples(uint16_t *data, uint32_t size);
uint16_t get_sample(void);
uint16_t get_adc_sample(void);
uint32_t ringbuf_increment(uint32_t *index, uint32_t buff_size_mask);