aboutsummaryrefslogtreecommitdiffstats
path: root/wirish/wirish_analog.cpp
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2011-03-25 20:09:30 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2011-03-25 20:09:30 -0400
commitf8081eeb04c9cb511adaf58e201c7cfbe1ddfbd4 (patch)
treea4de9665dd2d2340820b888c47e252c233ff9421 /wirish/wirish_analog.cpp
parent63ea7464925b8cbeb8623d08a2bde0b1d2044047 (diff)
downloadlibrambutan-f8081eeb04c9cb511adaf58e201c7cfbe1ddfbd4.tar.gz
librambutan-f8081eeb04c9cb511adaf58e201c7cfbe1ddfbd4.zip
Final stm32_pin_info design candidate; ADC3 support on Native.
Added an adc_dev to struct stm32_pin_info. This was necessary to add support for the channels on the Native which are only connected to ADC3, but it does add a bunch of NULLs to the PIN_MAPs. I don't think any other peripherals need representation on a per-pin basis. Each peripheral library will be responsible for keeping track of related GPIO ports and bits, and we can throw #defines in to boards/*.h for other things (e.g. BOARD_SPI1_MISO_PIN). Fleshed out the ADC refactor and brought it more in keeping with the new design as it evolves. A couple of other tweaks. Notably: waitForButtonPress() now takes a default argument meaning "wait forever". Removed Maple-specific documentation from core functions in io.h; this information will need to go into the individual board docs files.
Diffstat (limited to 'wirish/wirish_analog.cpp')
-rw-r--r--wirish/wirish_analog.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/wirish/wirish_analog.cpp b/wirish/wirish_analog.cpp
index 9e99aa5..8756caf 100644
--- a/wirish/wirish_analog.cpp
+++ b/wirish/wirish_analog.cpp
@@ -31,11 +31,12 @@
#include "io.h"
/* Assumes that the ADC has been initialized and that the pin is set
- * to ANALOG_INPUT */
-uint32 analogRead(uint8 pin) {
- if(PIN_MAP[pin].adc_channel == ADCx) {
+ * to INPUT_ANALOG */
+uint16 analogRead(uint8 pin) {
+ const adc_dev *dev = PIN_MAP[pin].adc_device;
+ if (dev == NULL) {
return 0;
}
- return adc_read(ADC1, PIN_MAP[pin].adc_channel);
+ return adc_read(dev, PIN_MAP[pin].adc_channel);
}