aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tk-attiny.h3
-rw-r--r--tk-voltage.h14
2 files changed, 17 insertions, 0 deletions
diff --git a/tk-attiny.h b/tk-attiny.h
index 4fee640..6390416 100644
--- a/tk-attiny.h
+++ b/tk-attiny.h
@@ -70,6 +70,9 @@
#define ADC_DIDR ADC1D // Digital input disable bit corresponding with PB2
#define ADC_PRSCL 0x06 // clk/64
+//#define TEMP_DIDR ADC4D
+#define TEMP_CHANNEL 0b00001111
+
#endif // FET_7135_LAYOUT
#ifdef FERRERO_ROCHER_LAYOUT
diff --git a/tk-voltage.h b/tk-voltage.h
index 5eaf0d4..8421ef3 100644
--- a/tk-voltage.h
+++ b/tk-voltage.h
@@ -23,6 +23,20 @@
#include "tk-attiny.h"
#include "tk-calibration.h"
+#ifdef TEMPERATURE_MON
+inline void ADC_on_temperature() {
+ // TODO: (?) enable ADC Noise Reduction Mode, Section 17.7 on page 128
+ // (apparently can only read while the CPU is in idle mode though)
+ // select ADC4 by writing 0b00001111 to ADMUX
+ // 1.1v reference, left-adjust, ADC4
+ ADMUX = (1 << V_REF) | (1 << ADLAR) | TEMP_CHANNEL;
+ // disable digital input on ADC pin to reduce power consumption
+ //DIDR0 |= (1 << TEMP_DIDR);
+ // enable, start, prescale
+ ADCSRA = (1 << ADEN ) | (1 << ADSC ) | ADC_PRSCL;
+}
+#endif // TEMPERATURE_MON
+
#ifdef VOLTAGE_MON
inline void ADC_on() {
// disable digital input on ADC pin to reduce power consumption