This commit is contained in:
nzasch
2025-06-28 00:58:29 +02:00
parent b9232f66b0
commit 28b7af65b6
123 changed files with 105128 additions and 104148 deletions

View File

@@ -1,57 +1,69 @@
#define SYS_TICK_PRESCALE_10HZ 0
#define SYS_TICK_PRESCALE_1HZ 10
// device presenti
#define SQUEOW_SYNTH
#define SQUEOW_PWM
#define SQUEOW_SONDA_TEMPERATURA
#define SQUEOW_SONDA_DIRETTA
#define SQUEOW_SONDA_RIFLESSA
// #define SQUEOW_SONDA_CORRENTE
#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
// secondo l'ordine di rank dell'ADC
#define SQUEOW_ADC_CORRENTE 0 // IN4 (pin 12, A2)
#define SQUEOW_ADC_TEMPERATURA 1 // IN3 (pin 11, A3)
#define SQUEOW_ADC_DIRETTA 2 // IN13 (pin 10, A4)
#define SQUEOW_ADC_RIFLESSA 3 // IN17 (pin 9, A5)
#define SAMPLES_BUFFER_SIZE (1024) ///< deve essere ^2
#define SAMPLES_BUFFER_SIZE_MASK (SAMPLES_BUFFER_SIZE - 1)
#define SINE_INCREMENT 0.314
// soglie
#define SOGLIA_CORRENTE 3096
#define SOGLIA_TEMPERATURA 3096
#define SOGLIA_DIRETTA 3096
#define SOGLIA_RIFLESSA 3096
// base dei tempi per operazioni lente, la base dei tempi è 100hz
#define SYS_TICK_PRESCALE_10HZ 10
#define SYS_TICK_PRESCALE_1HZ 100
// modalità di blocco
#define MODALITA_BLOCCO_PERMANENTE
// #define MODALITA_BLOCCO_TEMPORANEO
// #define MODALITA_BLOCCO_BASSA_POTENZA
#define TEMPO_BLOCCO_TEMPORANEO 1000
#define DIVISORE_BLOCCO_BASSA_POTENZA 2
#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;
extern volatile uint8_t sys_tick, sys_tick_prescale;
// UART
int serial_write(char *ptr, size_t len);
extern UART_HandleTypeDef huart1;
#define UART_RX_BUF_SIZE 64
#define UART_RX_BUF_SIZE 256
extern uint8_t UART_RX_buf[UART_RX_BUF_SIZE];
#define UART_TX_BUF_SIZE 256
extern uint8_t UART_TX_buf[UART_TX_BUF_SIZE];
extern uint8_t UART_TX_buf_lenght;
// 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];
// per usare buffer da 32 settare WORD nel canale DMA
extern uint32_t adc2_valori[4];
extern uint8_t adc2_done, blocco, blocco_fatto, codice_allarme;
// 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;
// ADC
void adc_rileva_soglie(uint32_t *adc_valori);
void processa_blocco(void);
// 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;
@@ -59,12 +71,11 @@ extern ADC_HandleTypeDef hadc2;
// funzie
void squeow_init(void);
void squeow_synth_init(void);
void squeow_synth_set(uint32_t freq);
void squeow_synth_on(void);
void squeow_synth_off(void);
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);