// 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);