summaryrefslogtreecommitdiff
path: root/drivers/avr/analog.h
diff options
context:
space:
mode:
authorbwhelm <bwhelm@users.noreply.github.com>2019-09-03 14:29:23 -0400
committerFlorian Didron <fdidron@users.noreply.github.com>2019-09-26 10:08:39 +0900
commitb39dbc0342a32cb73f3460534d3e33e2d29f5a9e (patch)
tree76cb3a4156e9ff1d319cb8cf9bbf4bc9aac691ee /drivers/avr/analog.h
parent6e2424e6581d70d2c9e1f98ed42624d59b83bce0 (diff)
Fix battery level code in adafruit_ble.cpp (#6648)
* Fix battery level code in adafruit_ble.cpp The code in tsk_core/protocol/lufa/adafluit_ble.cpp that polls the battery level for the Adafruit feather BLE controller reads the regulated voltage, not the raw voltage coming from the battery. To do that, the Adafruit Feather docs say you should read from pin A9: https://learn.adafruit.com/adafruit-feather-32u4-basic-proto/power-management#measuring-battery-4-9. (See also https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le/pinouts#logic-pins-2-9.) I'm not sure why, but analogRead(9); doesn't read the correct pin. Checking all available analog pins experimentally, it turns out that analogRead(7); returns the correct value. So the code above should read: state.vbat = analogRead(7); * Update tmk_core/protocol/lufa/adafruit_ble.cpp Co-Authored-By: Drashna Jaelre <drashna@live.com> * Remove old comment * Fix linking error * Remove `#ifdef` around `#include analog.h`. * Really fix linking error
Diffstat (limited to 'drivers/avr/analog.h')
-rw-r--r--drivers/avr/analog.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/avr/analog.h b/drivers/avr/analog.h
index 32452a1ec2..1b773d82ce 100644
--- a/drivers/avr/analog.h
+++ b/drivers/avr/analog.h
@@ -19,9 +19,15 @@
#include <stdint.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
void analogReference(uint8_t mode);
int16_t analogRead(uint8_t pin);
int16_t adc_read(uint8_t mux);
+#ifdef __cplusplus
+}
+#endif
#define ADC_REF_POWER (1 << REFS0)
#define ADC_REF_INTERNAL ((1 << REFS1) | (1 << REFS0))