Files
squeow/squeow_sw/Inc/squeow.h
2025-06-28 00:58:29 +02:00

82 lines
2.0 KiB
C

// device presenti
#define SQUEOW_SYNTH
#define SQUEOW_PWM
#define SQUEOW_SONDA_TEMPERATURA
#define SQUEOW_SONDA_DIRETTA
#define SQUEOW_SONDA_RIFLESSA
// #define SQUEOW_SONDA_CORRENTE
// 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)
// 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 max(x,y) (((x) >= (y)) ? (x) : (y))
// SYS
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 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;
// ADC2
// 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;
// ADC
void adc_rileva_soglie(uint32_t *adc_valori);
void processa_blocco(void);
extern UART_HandleTypeDef huart1;
extern ADC_HandleTypeDef hadc1;
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);
uint32_t ringbuf_increment(uint32_t *index, uint32_t buff_size_mask);