int main () { adc_request_t ADC1, ADC2, ADC3; adc_init(); VT100_clr(); USART0_init(9600); Timer0_pwm_init(0); Timer1_pwm_init(0); Timer2_pwm_init(0); enable_int(); adc_request_init(&ADC1, 'R', 0); adc_request_init(&ADC2, 'B', 1); adc_request_init(&ADC3, 'G', 2); while (1) { adc_request_start(&ADC1); adc_request_start(&ADC2); adc_request_start(&ADC3); if ( adc_request_complete(&ADC1) ) consume_adc_data('R', adc_request_data(&ADC1)); if ( adc_request_complete(&ADC2) ) consume_adc_data('B', adc_request_data(&ADC2)); if ( adc_request_complete(&ADC3) ) consume_adc_data('G', adc_request_data(&ADC3)); adc_process(); } return 0; }
int main(void) { init(); adc_init(); lcd_init(); while(1) { // run lcd update every 1 sec if(!lcd_tick) { lcd_screen(time_s,n,f,r,s,h,w,overtime); PORTB = PORTB^0x2; // flip led } // do adc data processing if there's new data if(adc_flag && (!overtime)) { adc_process(adc_array); adc_flag = 0; } } }