Pico-Arduino
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
 Narduino
 CClient
 CHardwareI2C
 CHardwareSerial
 CHardwareSPI
 CIPAddress
 CPluggableUSB_
 CPluggableUSBModule
 CPrint
 CPrintable
 CServer
 CSPISettings
 CStream
 CMultiTarget
 CUDP
 Npico_arduinoPico Arduino Framework
 CArduinoPicoToneArduinoPicoTone provides static methods for PicoTone
 CBuffersWe are managing a 2 collections of memory arrays: One for the available buffers which can be requested to record data and the buffers of filled data which need to be processed (e.g. stored to a SD drive)
 CMapA simple key value map collection
 CMapEntryKey/Value
 CMuliticoreFifoThe RP2040 contains two FIFOs for passing data, messages or ordered events between the two cores. Each FIFO is 32 bits wide, and 8 entries deep. One of the FIFOs can only be written by core 0, and read by core 1. The other can only be written by core 1, and read by core 0
 CPicoDMAWe can use the Pico DMA to copy data "in the background" while the processor is doing some other work. One PicoDMA object represents a single DMA channel which is reserved the first time it is needed. You can release it explicity after you are done with the processing
 CPicoHardwareI2CArduino I2C implementation using the Pico functionality. In Arduino we can read and write individal characters wheresease in Pico the operations have to be done with arrays. We therefore create a read and write buffer to cache the operations
 CPicoHardwareSPIArduino HardwareSPI interface using the Pico API. We use the following default pins spi0: pinRx = 16; pinTx = 19; pinCS = 17; pinSCK = 18; spi1: pinRx = 12; pinTx = 11; pinCS = 13; pinSCK = 10; On the master miso = pinRx and mosi = pinTx
 CPicoLoggerA simple Logger that writes messages dependent on the log level
 CPicoPinFunctionThe pico requires that the function of the pin is defined. In Arduino, there is no such concept - however we need to define if the pin is input or output
 CPicoPWMThis is an even more powerfull PWM API where we can specify a user defined input range and the cycle frequency in hz
 CPicoPWMNanoBasic PWM API based on the input and output in nano seconds The Raspberry Pico has 8 controllable PWM slices with each 2 channels, so we can control up to 16 pwm devices at the same time! This is Simple Basic PWM API where we specifiy the periods and duty cyle in Nanoseconds
 CPicoPWMReaderPWM class which supports the input of PWM signals
 CPicoPWMWriterSupport for the generation of PWM signals. For the standard Arduino functionality we use on fixed frequency (defined in the constructor). If you use this API you can define separate frequencies per slice by creating separate instances
 CPicoSerialUARTSerial Stream for a defined UART. By default we use the following pins: UART0 tx/rx = gp0/gp1; UART1 tx/rx = gp4/gp5;
 CPicoSerialUSBPicoUSBSerial is using the pico USB output. It is mapped to the Arduino Serial variable
 CPicoToneWe use the TimerAlarmRepeating to generate tones
 CPinInfoInformation about an the status and the Arduino PinMode of an individual pin
 CPinSetupBase class for function specific pin setup and pin use functionality
 CPinSetupADCPin Initialization for ADC
 CPinSetupGPIOPin Initialization for GPIO
 CPIOManagerThe PIO subsystem on RP2040 allows you to write small, simple programs for what are called PIO state machines, of which RP2040 has eight split across two PIO instances. A state machine is responsible for setting and reading one or more GPIOs, buffering data to or from the processor (or RP2040’s ultra-fast DMA subsystem), and notifying the processor, via IRQ or polling, when data or attention is needed
 CQueueConstruct a new Pico Queue object
 CSemaphorePico Semaphore which might be useful if you use the 2 processors (e.g. with the Thread class)
 CServoWe provide an alternative Pico implementation for the Servo class which is compatible with the Arduino Servo library
 CSoftwareSerialSoftware Serial Arduino Stream which uses the Pico PIO
 CSoundBufferSoundBuffer where the data is standardized, amplified and clipped
 CStreamPrintfSupport for Serial.printf. The maximum printable length is defined by PRINTF_BUFFER_SIZE which is set to 512 by default
 CThreadAdds support for running code on the second processor core (core1)
 CTimerAlarmAlarm functions for scheduling future execution
 CTimerAlarmRepeatingRepeating Timer functions for simple scheduling of repeated execution
 CVectorVector implementation which provides the most important methods as defined by std::vector. This is neither part of Pico nor of the Arduino framwork but nevertheless it is quite handy to have and most of the times quite better then dealing with raw c arrays
 CiteratorIterator for the Vector class
 CSerialDACIf your Microcontroller does not provide a dedicated analog output you can use the serial output instead as a poor man's work around. The idea is based on the fact that the output of 0b0 leads to 0 Volt on the signal line and the output of 0b1111111111111111 leads to 3.3V