10#include "api/ArduinoAPI.h"
12#include "api/deprecated-avr-comp/avr/dtostrf.h"
20#define interrupts() __asm volatile("cpsie i" ::: "memory")
26#define noInterrupts() __asm volatile("cpsid i" ::: "memory")
30using namespace arduino;
34#if __cplusplus >= 201703L
40 "pins_arduino.h: PHYDUINO_PIN_TO_GPIO needs exactly PINS_COUNT entries");
55#define digitalPinToInterrupt(pin) (pin)
void variantAnalogReadAveraging(uint8_t samples)
Sets the averaging for the variant's analog pins.
constexpr uint8_t kPinToGpio[]
RP2040 GPIO for each Arduino pin, indexed by pin number (PHYDUINO_PIN_TO_GPIO).
Definition Arduino.h:35
uint32_t variantAnalogStartBurst(pin_size_t pin, uint16_t *buffer, size_t count, uint32_t sample_rate_hz)
Starts a background burst on a variant analog pin; 12-bit samples into buffer.
uint16_t variantAnalogRead(pin_size_t pin)
Reads an analog pin that has no RP2040 GPIO, with the variant's averaging setting.
bool variantAnalogReadDifferential(pin_size_t plus, pin_size_t minus, int32_t *millivolts)
Measures plus - minus if the variant can do it in hardware.
uint32_t variantAnalogFullScaleMillivolts(pin_size_t pin)
Full scale of a variant analog pin.
void variantAnalogStopBurst()
Stops the variant's burst.
bool variantAnalogBurstDone()
Whether the variant's burst has finished (true if none was started).
bool variantAnalogReadMultiple(const pin_size_t *pins, uint8_t count, uint16_t *raw)
Reads several variant analog pins in one go.
rp2040: the second core (setup1()/loop1()), the inter-core FIFO and chip information.
Serial1, Serial2: the RP2040 hardware UARTs on the header pins.
Serial: USB CDC serial port (TinyUSB).
void analogReadResolution(int bits)
Sets the number of bits analogRead() returns, for every analog pin.
void analogWriteResolution(int bits)
Sets the range analogWrite() takes, for every pin.
uint32_t analogReadMillivolts(pin_size_t pin)
Reads an analog pin as a voltage, whatever its ADC and full scale.
bool analogBurstDone()
Whether the burst started by analogStartBurst() has finished.
uint32_t analogReadBurst(pin_size_t pin, uint16_t *buffer, size_t count, uint32_t sample_rate_hz)
Samples one analog pin at a fixed rate into an array, and waits until it is full.
void analogReadAveraging(uint8_t samples)
Sets how many samples are averaged for each analog result, on every analog pin.
uint32_t analogStartBurst(pin_size_t pin, uint16_t *buffer, size_t count, uint32_t sample_rate_hz)
Starts a burst like analogReadBurst(), but returns at once; the samples are taken in the background.
int32_t analogReadDifferentialMillivolts(pin_size_t plus, pin_size_t minus)
Voltage between two analog pins, plus minus minus.
uint32_t analogFullScaleMillivolts(pin_size_t pin)
Voltage that reads as full scale on an analog pin.
void analogStopBurst()
Stops the burst started by analogStartBurst() before it has finished.
bool analogReadMultiple(const pin_size_t *pins, uint8_t count, uint16_t *results)
Reads several analog pins as close together in time as possible.
void analogWriteFrequency(uint32_t hz)
Sets the PWM frequency used by later analogWrite() calls.
uint8_t digitalPinToGpio(pin_size_t pin)
RP2040 GPIO behind an Arduino pin, for use with the pico-sdk.
Definition Arduino.h:49
uint8_t pin_size_t
Type for Arduino pin numbers (uint8_t).
Definition Common.h:112
Phyduino Pico (RP2040): THE pin map. Every Arduino pin number and on-board peripheral pin is defined ...
#define PINS_COUNT
Arduino pin numbers 0-22.
Definition pins_arduino.h:31
#define PHYDUINO_PIN_TO_GPIO
Arduino pin number -> RP2040 GPIO, indexed by pin number (see table above).
Definition pins_arduino.h:39
#define NOT_A_GPIO
Marks an Arduino pin with no RP2040 GPIO behind it (A3-A5).
Definition pins_arduino.h:36