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