diff options
author | Perry Hung <iperry@alum.mit.edu> | 2010-03-23 00:55:40 -0400 |
---|---|---|
committer | Perry Hung <iperry@alum.mit.edu> | 2010-03-23 01:25:00 -0400 |
commit | 3639ad2cf027da7425ebe76382842c006acec05a (patch) | |
tree | 65682fc68e0625c4ff41f7cdc169482ec6d77672 /src/wiring/io.h | |
parent | 48be688f451e81d2a81c76a85dadf18093e672ab (diff) | |
download | librambutan-3639ad2cf027da7425ebe76382842c006acec05a.tar.gz librambutan-3639ad2cf027da7425ebe76382842c006acec05a.zip |
Unified analog, digital, and timer pin mappings to implement the mapping
we discussed. There's no such thing as A0-A15 anymore. You should now
be able to do something like:
unsigned int val;
pinMode(15, INPUT_ANALOG);
val = analogRead(15);
Diffstat (limited to 'src/wiring/io.h')
-rw-r--r-- | src/wiring/io.h | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/wiring/io.h b/src/wiring/io.h index a313b2b..9f6aa4a 100644 --- a/src/wiring/io.h +++ b/src/wiring/io.h @@ -27,6 +27,8 @@ #define _IO_H #include <inttypes.h> +#include "gpio.h" +#include "adc.h" #ifdef __cplusplus extern "C"{ @@ -75,23 +77,6 @@ extern "C"{ #define D38 38 #define D39 39 -#define A0 D14 -#define A1 D15 -#define A2 D16 -#define A3 D17 -#define A4 D18 -#define A5 D19 -#define A6 D0 -#define A7 D1 -#define A8 D2 -#define A9 D3 -#define A10 D10 -#define A11 D11 -#define A12 D12 -#define A13 D13 -#define A14 D26 -#define A15 D11 - typedef enum WiringPinMode { OUTPUT, OUTPUT_OPEN_DRAIN, @@ -103,6 +88,16 @@ typedef enum WiringPinMode { PWM } WiringPinMode; +typedef struct PinMapping { + GPIO_Port *port; + uint32 pin; + uint32 adc; + TimerCCR timer_channel; +} PinMapping; + +#define ADC_INVALID 0xFFFFFFFF +#define TIMER_INVALID (TimerCCR)0xFFFFFFFF + /* Set pin to mode * pinMode(pin, mode): * pin -> {0-38, D0-D39, A0-16} |