]> git.tdb.fi Git - model-railway-devices.git/blobdiff - common/adc.c
Somre more common facilities
[model-railway-devices.git] / common / adc.c
diff --git a/common/adc.c b/common/adc.c
new file mode 100644 (file)
index 0000000..7c71c3d
--- /dev/null
@@ -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);
+}