int main(void) { NVIC_PriorityGroupConfig( NVIC_PriorityGroup_4 ); init_DACs(); init_ADC1(); init_Timers(); init_USART(); state = STATE_IDLE; EOL = 0; EOS = 0; DAC1.start = 0x0000; DAC1.step = 0x0020; DAC1.stop = 0x1000; DAC1Value = 0x0000; DAC2.start = 0x0000; DAC2.step = 0x0200; DAC2.stop = 0x1000; DAC2Value = 0x0000; ADCBuffer = malloc(128 * sizeof(uint16_t)); while(1) { if(state == STATE_FORCE) { TIM_Cmd(TIM2, ENABLE); state = STATE_START; } } }
uint8_t get_adc_sample(uint8_t ADC_val) { switch (ADC_val){ case 0 : init_ADC0(); case 1 : init_ADC1(); case 7 : init_ADC7(); default : init_ADC0(); } //start the conversion ADC_start_single_conversion(); //wait for the ADC to finish while((ADCSRA & (1<<ADSC))){}; //return the ADC result return ADCH; }