int main() { uart_init(); ADMUX |= (1 << REFS0); // 5V reference ADCSRA |= (1 << ADEN); // Enable ADC uint16_t measure = 0; for(;;) { ADCSRA |= (1 << ADSC); // Start conversion while(!(ADCSRA & (1 << ADSC))); // Wait for the conversion to finish measure = ADCL; //measure += (ADCH << 8); uart_tx_num(measure); uart_newline(); _delay_us(1000); } }
int main() { int x,y,z; adc_init(); uart_init(); lcd_init(); delay(100); lcd_char('a'); while(1) { cmd(0x01); // Clear LCD AD0CR = 0x01200600; // ADC Stop, select Channel 0 //AD0CR |= 0x01000000; // Start ADC, Channel 0 x = read_adc(); cmd(0x80); lcd_int(x); uart_tx_num(x); uart_tx_char(' '); AD0CR = 0x01200602; //AD0CR |= 0x01000000; // Start ADC, Channel 0 y = read_adc(); cmd(0x85); lcd_int(y); uart_tx_num(y); uart_tx_char(' '); AD0CR = 0x01200604; //AD0CR |= 0x01000000; // Start ADC, Channel 0 z = read_adc(); cmd(0x8A); lcd_int(z); uart_tx_num(z); uart_tx_str("\r"); if(x>600 ) { cmd(0x01); lcd_str("ALERT x = "); uart_tx_str("\nAlert x"); cmd(0xc0); lcd_int(x); delay(1000); cmd(0x01); } if(y<300 ) { cmd(0x01); lcd_str("ALERT y = "); uart_tx_str("\nAlert y"); cmd(0xc0); lcd_int(y); delay(1000); cmd(0x01); } delay(100); } }