General Utilities (Ringbuffers, FIFOs, LED Colors, etc.) More...
General Utilities (Ringbuffers, FIFOs, LED Colors, etc.)
A MappedValue
that maps an list of strings linearly.
A MappedValue
that maps an int value linearly.
A MappedValue
that maps a float value using various mapping functions.
Abstract base class for a value that is mapped to a 0..1 normalized range.
A safe and convenient statically allocated string with constexpr powers.
CPU load metering.
To measure the CPU load of your audio processing, create a CpuLoadMeter and initialize it with your block size and sample rate. Then at the beginning of the audio callback, call OnBlockStart()
, and at the end of the audio callback, call OnBlockEnd()
. You can then read out the minimum, maximum and average CPU load.
This string class is statically allocated. All of its functions can be evaluated at compile time through the power of constexpr.
Namespaces | |
namespace | daisy |
Hardware defines and helpers for daisy field platform. | |
Classes | |
struct | dsy_gpio_pin |
class | daisy::Random |
True Random Number Generator access. More... | |
struct | DSY_SD_CardInfoTypeDef |
class | daisy::Color |
struct | FontDef |
class | daisy::RingBuffer< T, size > |
class | daisy::RingBuffer< T, 0 > |
Macros | |
#define | DMA_BUFFER_MEM_SECTION __attribute__((section(".sram1_bss"))) |
#define | DTCM_MEM_SECTION __attribute__((section(".dtcmram_bss"))) |
#define | FBIPMAX 0.999985f |
#define | FBIPMIN (-FBIPMAX) |
#define | U82F_SCALE 0.0078740f |
#define | F2U8_SCALE 127.0f |
#define | S82F_SCALE 0.0078125f |
#define | F2S8_SCALE 127.0f |
#define | S162F_SCALE 3.0517578125e-05f |
#define | F2S16_SCALE 32767.0f |
#define | F2S24_SCALE 8388608.0f |
#define | S242F_SCALE 1.192092896e-07f |
#define | S24SIGN 0x800000 |
#define | S322F_SCALE 4.6566129e-10f |
#define | F2S32_SCALE 2147483647.f |
#define | OUT_L out[0] |
#define | OUT_R out[1] |
#define | IN_L in[0] |
#define | IN_R in[1] |
#define | BSP_SD_CardInfo DSY_SD_CardInfoTypeDef |
#define | MSD_OK ((uint8_t)0x00) |
#define | MSD_ERROR ((uint8_t)0x01) |
#define | MSD_ERROR_SD_NOT_PRESENT ((uint8_t)0x02) |
#define | SD_TRANSFER_OK ((uint8_t)0x00) |
#define | SD_TRANSFER_BUSY ((uint8_t)0x01) |
#define | SD_PRESENT ((uint8_t)0x01) |
#define | SD_NOT_PRESENT ((uint8_t)0x00) |
#define | SD_DATATIMEOUT ((uint32_t)100000000) |
Enumerations | |
enum | dsy_gpio_port { DSY_GPIOA , DSY_GPIOB , DSY_GPIOC , DSY_GPIOD , DSY_GPIOE , DSY_GPIOF , DSY_GPIOG , DSY_GPIOH , DSY_GPIOI , DSY_GPIOJ , DSY_GPIOK , DSY_GPIOX , DSY_GPIO_LAST } |
Functions | |
FORCE_INLINE float | cube (float x) |
FORCE_INLINE float | u82f (uint8_t x) |
FORCE_INLINE uint8_t | f2u8 (float x) |
FORCE_INLINE float | s82f (int8_t x) |
FORCE_INLINE int8_t | f2s8 (float x) |
FORCE_INLINE float | s162f (int16_t x) |
FORCE_INLINE int16_t | f2s16 (float x) |
FORCE_INLINE float | s242f (int32_t x) |
FORCE_INLINE int32_t | f2s24 (float x) |
FORCE_INLINE float | s322f (int32_t x) |
FORCE_INLINE int32_t | f2s32 (float x) |
FORCE_INLINE dsy_gpio_pin | dsy_pin (dsy_gpio_port port, uint8_t pin) |
FORCE_INLINE uint8_t | dsy_pin_cmp (dsy_gpio_pin *a, dsy_gpio_pin *b) |
uint8_t | BSP_SD_Init (void) |
uint8_t | BSP_SD_ITConfig (void) |
uint8_t | BSP_SD_ReadBlocks (uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks, uint32_t Timeout) |
uint8_t | BSP_SD_WriteBlocks (uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks, uint32_t Timeout) |
uint8_t | BSP_SD_ReadBlocks_DMA (uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks) |
uint8_t | BSP_SD_WriteBlocks_DMA (uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks) |
uint8_t | BSP_SD_Erase (uint32_t StartAddr, uint32_t EndAddr) |
uint8_t | BSP_SD_GetCardState (void) |
void | BSP_SD_GetCardInfo (DSY_SD_CardInfoTypeDef *CardInfo) |
uint8_t | BSP_SD_IsDetected (void) |
void | BSP_SD_AbortCallback (void) |
void | BSP_SD_WriteCpltCallback (void) |
void | BSP_SD_ReadCpltCallback (void) |
GPIO_TypeDef * | dsy_hal_map_get_port (const dsy_gpio_pin *p) |
uint16_t | dsy_hal_map_get_pin (const dsy_gpio_pin *p) |
void | dsy_hal_map_gpio_clk_enable (dsy_gpio_port port) |
void | dsy_get_unique_id (uint32_t *w0, uint32_t *w1, uint32_t *w2) |
Variables | |
FontDef | Font_4x6 |
FontDef | Font_4x8 |
FontDef | Font_5x8 |
FontDef | Font_6x7 |
FontDef | Font_6x8 |
FontDef | Font_7x10 |
FontDef | Font_11x18 |
FontDef | Font_16x26 |
#define BSP_SD_CardInfo DSY_SD_CardInfoTypeDef |
&
#define DMA_BUFFER_MEM_SECTION __attribute__((section(".sram1_bss"))) |
Macro for area of memory that is configured as cacheless This should be used primarily for DMA buffers, and the like.
#define DTCM_MEM_SECTION __attribute__((section(".dtcmram_bss"))) |
THE DTCM RAM section is also non-cached. However, is not suitable for DMA transfers. Performance is on par with internal SRAM w/ cache enabled.
#define F2S16_SCALE 32767.0f |
(2 ** 15) - 1
#define F2S24_SCALE 8388608.0f |
2 ** 23
#define F2S32_SCALE 2147483647.f |
(2 ** 31) - 1
#define F2S8_SCALE 127.0f |
(2 ** 7) - 1
#define F2U8_SCALE 127.0f |
128 - 1
#define FBIPMAX 0.999985f |
close to 1.0f-LSB at 16 bit
#define FBIPMIN (-FBIPMAX) |
#define IN_L in[0] |
shorthand macro for simplifying the reading of the left channel of a non-interleaved input buffer named in
#define IN_R in[1] |
shorthand macro for simplifying the reading of the right channel of a non-interleaved input buffer named in
#define MSD_ERROR ((uint8_t)0x01) |
&
#define MSD_ERROR_SD_NOT_PRESENT ((uint8_t)0x02) |
&
#define MSD_OK ((uint8_t)0x00) |
&
#define OUT_L out[0] |
shorthand macro for simplifying the reading of the left channel of a non-interleaved output buffer named out
#define OUT_R out[1] |
shorthand macro for simplifying the reading of the right channel of a non-interleaved output buffer named out
#define S162F_SCALE 3.0517578125e-05f |
1 / (2** 15)
#define S242F_SCALE 1.192092896e-07f |
1 / (2 ** 23)
#define S24SIGN 0x800000 |
2 ** 23
#define S322F_SCALE 4.6566129e-10f |
1 / (2** 31)
#define S82F_SCALE 0.0078125f |
1 / (2**7)
#define SD_DATATIMEOUT ((uint32_t)100000000) |
&
#define SD_NOT_PRESENT ((uint8_t)0x00) |
&
#define SD_PRESENT ((uint8_t)0x01) |
&
#define SD_TRANSFER_BUSY ((uint8_t)0x01) |
&
#define SD_TRANSFER_OK ((uint8_t)0x00) |
&
#define U82F_SCALE 0.0078740f |
1 / 127
enum dsy_gpio_port |
Enums and a simple struct for defining a hardware pin on the MCU These correlate with the stm32 datasheet, and are used to configure the hardware.
This along with the dsy_gpio_pin class should no longer be used. They are available for backwards compatability.
Please use GPIOPort enum and the Pin struct instead.
void BSP_SD_AbortCallback | ( | void | ) |
These functions can be modified in case the current settings (e.g. DMA stream) need to be changed for specific application needs /n
Abort the callback
uint8_t BSP_SD_Erase | ( | uint32_t | StartAddr, |
uint32_t | EndAddr | ||
) |
Erase a section of memory
StartAddr | Address to start erasing at |
EndAddr | Address to stop erasing at |
void BSP_SD_GetCardInfo | ( | DSY_SD_CardInfoTypeDef * | CardInfo | ) |
*CardInfo | Pointer to write card info to |
CardInfo | & |
uint8_t BSP_SD_GetCardState | ( | void | ) |
uint8_t BSP_SD_Init | ( | void | ) |
uint8_t BSP_SD_IsDetected | ( | void | ) |
uint8_t BSP_SD_ITConfig | ( | void | ) |
uint8_t BSP_SD_ReadBlocks | ( | uint32_t * | pData, |
uint32_t | ReadAddr, | ||
uint32_t | NumOfBlocks, | ||
uint32_t | Timeout | ||
) |
*pData | & |
ReadAddr | Address to read from |
NumOfBlocks | Number of blocks to be read |
Timeout | Timeout len in ms |
uint8_t BSP_SD_ReadBlocks_DMA | ( | uint32_t * | pData, |
uint32_t | ReadAddr, | ||
uint32_t | NumOfBlocks | ||
) |
No timeout
*pData | & |
ReadAddr | Address to read from |
NumOfBlocks | Number of blocks to be read |
void BSP_SD_ReadCpltCallback | ( | void | ) |
Write complete callback
uint8_t BSP_SD_WriteBlocks | ( | uint32_t * | pData, |
uint32_t | WriteAddr, | ||
uint32_t | NumOfBlocks, | ||
uint32_t | Timeout | ||
) |
*pData | & |
WriteAddr | Address to write to |
NumOfBlocks | Number of blocks to be written |
Timeout | Timeout len in ms |
uint8_t BSP_SD_WriteBlocks_DMA | ( | uint32_t * | pData, |
uint32_t | WriteAddr, | ||
uint32_t | NumOfBlocks | ||
) |
No timeout
*pData | & |
WriteAddr | Address to write to |
NumOfBlocks | Number of blocks to be read |
void BSP_SD_WriteCpltCallback | ( | void | ) |
Read complete callback
FORCE_INLINE float cube | ( | float | x | ) |
Computes cube.
x | Number to be cubed |
void dsy_get_unique_id | ( | uint32_t * | w0, |
uint32_t * | w1, | ||
uint32_t * | w2 | ||
) |
Returns 96-bit Unique ID of the MCU
*w0 | First pointer |
*w1 | Second pointer |
*w2 | Third pointer |
uint16_t dsy_hal_map_get_pin | ( | const dsy_gpio_pin * | p | ) |
*p | Pin pin to get |
GPIO_TypeDef * dsy_hal_map_get_port | ( | const dsy_gpio_pin * | p | ) |
global structs, and helper functions for interfacing with the stm32 HAL library while it remains a dependancy. This file should only be included from source files (c/cpp) Including it from a header within libdaisy would expose the entire HAL to the users. This should be an option for users, but should not be required.
*p | Pin pin to get |
void dsy_hal_map_gpio_clk_enable | ( | dsy_gpio_port | port | ) |
port | port clock to enable |
FORCE_INLINE dsy_gpio_pin dsy_pin | ( | dsy_gpio_port | port, |
uint8_t | pin | ||
) |
Helper for creating pins from port/pin combos easily
The dsy_gpio_pin struct should no longer be used, and is only available for backwards compatability.
Please use Pin struct instead.
FORCE_INLINE uint8_t dsy_pin_cmp | ( | dsy_gpio_pin * | a, |
dsy_gpio_pin * | b | ||
) |
Helper for testing sameness of two dsy_gpio_pins
The dsy_gpio_pin struct should no longer be used, and is only available for backwards compatability.
Please use Pin struct instead.
FORCE_INLINE int16_t f2s16 | ( | float | x | ) |
Converts float to Signed 16-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< (2 ** 15) - 1
FORCE_INLINE int32_t f2s24 | ( | float | x | ) |
Converts float to Signed 24-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< 2 ** 23
FORCE_INLINE int32_t f2s32 | ( | float | x | ) |
Converts float to Signed 24-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< (2 ** 31) - 1
FORCE_INLINE int8_t f2s8 | ( | float | x | ) |
Converts float to Signed 8-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< (2 ** 7) - 1
FORCE_INLINE uint8_t f2u8 | ( | float | x | ) |
Converts float to unsigned 8-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< 128 - 1
< 128 - 1
FORCE_INLINE float s162f | ( | int16_t | x | ) |
Converts Signed 16-bit to float
x | Number to be scaled. |
< 1 / (2** 15)
FORCE_INLINE float s242f | ( | int32_t | x | ) |
Converts Signed 24-bit to float
< 2 ** 23
< 2 ** 23
< 1 / (2 ** 23)
FORCE_INLINE float s322f | ( | int32_t | x | ) |
Converts Signed 32-bit to float
< 1 / (2** 31)
FORCE_INLINE float s82f | ( | int8_t | x | ) |
Converts Signed 8-bit to float
x | Number to be scaled. |
< 1 / (2**7)
FORCE_INLINE float u82f | ( | uint8_t | x | ) |
Converts unsigned 8-bit to float
x | Number to be scaled. |
< 1 / 127
|
extern |
&
|
extern |
&
|
extern |
These are the different sizes of fonts (width x height in pixels per character)
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
&