picoAPI  1.0.0
DigitalIO

Macros

#define LED_ON   (0)
 
#define LED_OFF   (1)
 

Typedefs

typedef void(* picoPinIntHandler) (void)
 

Enumerations

enum  picoPin_e {
  P2_1 = 0, P2_2, P2_3, P2_4,
  P2_5, P2_6, P2_7, P2_8,
  P2_9, P2_10, P2_11, P2_12,
  P2_13, P2_14, P6_1, P6_2,
  P6_3, P6_4, P6_5, P6_6,
  P6_7, P6_8, P6_9, P6_10,
  P6_11, P6_12, P6_13, P6_14,
  P6_15, P6_16, P6_17, P6_18,
  P6_19, P6_20, P8_1, P8_2,
  P8_3, P8_4, P8_5, P8_6,
  P8_7, P8_8, P8_9, P8_10,
  LED_B = P8_10, LED_G, LED_R, PICOPIN_COUNT
}
 
enum  picoPinIntEdgeType_e { PICOPININT_EDGE_FALLING, PICOPININT_EDGE_RISING }
 
enum  picoPinIntRequest_e {
  PICOPININT_IRQ0, PICOPININT_IRQ1, PICOPININT_IRQ2, PICOPININT_IRQ3,
  PICOPININT_IRQ4, PICOPININT_IRQ5, PICOPININT_IRQ6, PICOPININT_IRQ7
}
 

Functions

int32_t picoConfigDigitalInputExt (picoPin_e pin, uint16_t mode)
 
int32_t picoConfigDigitalInput (picoPin_e pin)
 
int32_t picoConfigDigitalOutput (picoPin_e pin, bool initialValue)
 
int32_t picoConfigAnalogInput (picoPin_e pin)
 
int32_t picoConfigAnalogOutput (picoPin_e pin)
 
int32_t picoConfigUART (picoPin_e pin)
 
int32_t picoConfigI2C (picoPin_e pin)
 
int32_t picoConfigSPI (picoPin_e pin)
 
int32_t picoConfigMatchOutput (picoPin_e pin)
 
int32_t picoConfigCaptureInput (picoPin_e pin)
 
int32_t picoConfigSCTOutput (picoPin_e pin)
 
int32_t picoDigitalRead (picoPin_e pin)
 
int32_t picoDigitalWrite (picoPin_e pin, bool value)
 
int32_t picoDigitalToggle (picoPin_e pin)
 
void picoAttachPinInterrupt (picoPin_e pin, picoPinIntRequest_e irq, picoPinIntEdgeType_e edge, picoPinIntHandler handler)
 
void picoDetachPinInterrupt (picoPinIntRequest_e irq)
 

Detailed Description

Configuration of General Purpose Input/Outputs.

Macro Definition Documentation

#define LED_OFF   (1)

RGB LEDs on picoCIAA use inverted logic

#define LED_ON   (0)

RGB LEDs on picoCIAA use inverted logic

Typedef Documentation

typedef void(* picoPinIntHandler) (void)

user callback for pin interrupts

Enumeration Type Documentation

enum picoPin_e

physical pins definitions

Enumerator
P2_1 

DigitalInOut | UART1_TXD

P2_2 

DigitalInOut | SPI0_MOSI

P2_3 

DigitalInOut | AnalogIn | SPI1_MISO | PWM1.3

P2_4 

DigitalInOut | AnalogIn | SPI1_MOSI | PWM1.2

P2_5 

DigitalInOut | AnalogIn | SPI1_SCK | PWM1.2

P2_6 

DigitalInOut | AnalogIn | SPI1_SSEL0 | PWM1.3

P2_7 

DigitalInOut | AnalogIn | SPI0_MISO | PWM0.1

P2_8 

DigitalInOut | AnalogIn | SPI0_SCK

P2_9 

DigitalInOut | AnalogIn | SPI1_SSEL3 | PWM1.3

P2_10 

DigitalInOut | AnalogIn

P2_11 

DigitalInOut | AnalogIn | UART2_RTS | PWM3.1

P2_12 

DigitalInOut

P2_13 

DigitalInOut | I2C2_SDA | PWM2.0

P2_14 

DigitalInOut | SPI1_SSEL1 | PWM0.0

P6_1 

DigitalInOut | UART0_RTS | PWM1.3

P6_2 

DigitalInOut | UART0_CTS

P6_3 

DigitalInOut | UART1_RXD | PWM0.0

P6_4 

DigitalInOut | UART0_SCLK | SPI0_SSEL2 | PWM1.2

P6_5 

DigitalInOut | UART1_SCLK | PWM0.2

P6_6 

DigitalInOut | UART1_TXD | PWM0.1

P6_7 

DigitalInOut | UART2_RXD | PWM0.3

P6_8 

DigitalInOut | UART1_RTS

P6_9 

DigitalInOut | UART2_SCLK | PWM3.0

P6_10 

DigitalInOut | UART2_TXD | SPI0_SSEL0

P6_11 

DigitalInOut | UART1_TXD | SPI0_MOSI | PWM2.3

P6_12 

DigitalInOut | UART1_RXD | SPI0_SCK | PWM2.1

P6_13 

DigitalInOut | SPI0_SSEL0 | PWM2.1

P6_14 

DigitalInOut | SPI0_MISO | PWM2.0

P6_15 

DigitalInOut | UART3_TXD | SPI1_MOSI | PWM1.1

P6_16 

DigitalInOut | UART3_RXD | SPI1_SCK | PWM1.0

P6_17 

DigitalInOut | UART3_TXD | PWM0.0

P6_18 

DigitalInOut | UART2_RXD | SPI1_MISO

P6_19 

DigitalInOut | UART3_RXD

P6_20 

DigitalInOut | UART3_SCLK | PWM0.1

P8_1 

DigitalInOut | UART0_TXD | PWM3.0

P8_2 

DigitalInOut | SPI1_SSEL0

P8_3 

DigitalInOut | I2C0_SCL

P8_4 

DigitalInOut | UART0_RXD | PWM3.3

P8_5 

DigitalInOut | UART1_CTS | I2C1_SCL

P8_6 

DigitalInOut | I2C0_SDA | PWM0.0

P8_7 

DigitalInOut | I2C2_SCL

P8_8 

DigitalInOut | I2C1_SDA

P8_9 

GROUND

Warning
Do not use this pin!!!
P8_10 

DigitalInOut | AnalogIn | ISP mode | PWM0.3

LED_B 

DigitalInOut | LED Blue

LED_G 

DigitalInOut | LED Green

LED_R 

DigitalInOut | LED Red

PICOPIN_COUNT 

Pin count for checking

pin interrupt edge type

Enumerator
PICOPININT_EDGE_FALLING 

interrupt request on falling edge

PICOPININT_EDGE_RISING 

interrupt request on rising edge

pin interrupt request channel

Enumerator
PICOPININT_IRQ0 

channel 0

PICOPININT_IRQ1 

channel 1

PICOPININT_IRQ2 

channel 2

PICOPININT_IRQ3 

channel 3

PICOPININT_IRQ4 

channel 4

PICOPININT_IRQ5 

channel 5

PICOPININT_IRQ6 

channel 6

PICOPININT_IRQ7 

channel 7

Function Documentation

void picoAttachPinInterrupt ( picoPin_e  pin,
picoPinIntRequest_e  irq,
picoPinIntEdgeType_e  edge,
picoPinIntHandler  handler 
)

attach interrupt handler to pin and set edge type

Parameters
pinpin to configure as interrupt input (picoPin_e)
irqinterrupt request channel number (picoPinIntRequest_e)
edgeedge type (picoPinIntEdgeType_e)
handlerirq handler function (picoPinIntHandler)

Here is the call graph for this function:

int32_t picoConfigAnalogInput ( picoPin_e  pin)

config pin as analog input

Parameters
pinpicoPin_e to configure
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigAnalogOutput ( picoPin_e  pin)

config pin as analog output

Warning
Not supported yet!
Parameters
pinpicoPin_e to configure
Returns
-1, not supported
int32_t picoConfigCaptureInput ( picoPin_e  pin)

config pin as Timer Capture Input function

Parameters
pinpicoPin_e to configure
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigDigitalInput ( picoPin_e  pin)

Config pin as Digital Input with default settings

Parameters
pinpicoPin_e to configure
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigDigitalInputExt ( picoPin_e  pin,
uint16_t  mode 
)

Config pin as Digital Input, specifying mode bits (IOCON_*)

Parameters
pinpicoPin_e to configure
modemode bits (OR'ed values or type IOCON_*)
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigDigitalOutput ( picoPin_e  pin,
bool  initialValue 
)

Config pin as Digital Output

Parameters
pinpicoPin_e to configure
initialValueinitial value, 0 (low) or 1 (high)
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigI2C ( picoPin_e  pin)

config pin as I2C function

Parameters
pinpicoPin_e to configure
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigMatchOutput ( picoPin_e  pin)

config pin as Timer Match Output function (for PWM)

Parameters
pinpicoPin_e to configure
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigSCTOutput ( picoPin_e  pin)

config pin as State-Configurable Timer Output function (for PWM)

Parameters
pinpicoPin_e to configure
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigSPI ( picoPin_e  pin)

config pin as SPI function

Parameters
pinpicoPin_e to configure
Returns
0 if config was successful, -1 if invalid pin
int32_t picoConfigUART ( picoPin_e  pin)

config pin as UART function

Parameters
pinpicoPin_e to configure
Returns
0 if config was successful, -1 if invalid pin
void picoDetachPinInterrupt ( picoPinIntRequest_e  irq)

detach interrupt from pin and disable irq

Parameters
irqinterrupt request channel number (picoPinIntRequest_e)
int32_t picoDigitalRead ( picoPin_e  pin)

read Digital Input

Parameters
pinpicoPin_e to read
Returns
0 if input low, 1 if input high
int32_t picoDigitalToggle ( picoPin_e  pin)

toggle digital output

Parameters
pinpicoPin_e to toggle
Returns
0 if set was successful, -1 if invalid pin
int32_t picoDigitalWrite ( picoPin_e  pin,
bool  value 
)

write digital output

Parameters
pinpicoPin_e to write
value0/false (low) or 1/true (high)
Returns
0 if set was successful, -1 if invalid pin