X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=common%2Fadc.c;fp=common%2Fadc.c;h=7c71c3d5b4b3605e5f8a3bfeab8749cf1e7b21ba;hb=3c070b8fc92fe0506e29d0c0491038be241f7107;hp=0000000000000000000000000000000000000000;hpb=912c9026215483f1755c2291370208f43e1a7b2c;p=model-railway-devices.git diff --git a/common/adc.c b/common/adc.c new file mode 100644 index 0000000..7c71c3d --- /dev/null +++ b/common/adc.c @@ -0,0 +1,18 @@ +#include "adc.h" + +#define BIT(n) (1<<(n)) + +void adc_init() +{ + // TODO Adjust ADPS bits according to F_CPU + ADMUX = BIT(REFS0); + ADCSRA = BIT(ADEN) | BIT(ADIE) | BIT(ADPS2) | BIT(ADPS1) | BIT(ADPS0); + ADCSRB = 0; + DIDR0 = 0x3F; +} + +void adc_read_async(uint8_t chan) +{ + ADMUX = (ADMUX&0xF0) | (chan&0x0F); + ADCSRA |= BIT(ADSC); +}