19 lines
419 B
C
19 lines
419 B
C
#include "adc.h"
|
|
#include <stdint.h>
|
|
#include <avr/interrupt.h>
|
|
#include <avr/io.h>
|
|
#include <util/delay.h>
|
|
|
|
void adc_init() {
|
|
//DDRA=0x0; // does not exist but is default?
|
|
ADCSRA = (1<<ADEN)|(1<<ADPS1)|(1<<ADPS2);
|
|
ADMUX = (1<<REFS0);
|
|
}
|
|
uint16_t adc_read(uint8_t channel) {
|
|
ADMUX &= 0xf0;
|
|
ADMUX |= (channel & 0x0f);
|
|
ADCSRA |= (1<<ADSC);
|
|
while((ADCSRA&(1<<ADIF))==0);
|
|
return ADCL + (ADCH << 8);
|
|
}
|