|
Sound Byte Libs 29c5ff3
C++ firmware library for audio applications on 32-bit ARM Cortex-M processors
|
Platform-independent hardware interfaces and convenience layers. More...
Files | |
| file | driver.hpp |
| ADC driver interface - canonical types for MCU driver implementations. | |
| file | handle.hpp |
| ADC handle type for hardware abstraction. | |
| file | scan.hpp |
| ADC DMA scan interface — continuous multi-channel acquisition. | |
| file | types.hpp |
| ADC common types and enumerations. | |
| file | driver.hpp |
| Audio driver interface - canonical types and convenience functions. | |
| file | types.hpp |
| Audio common types and configuration. | |
| file | input.hpp |
| Button input convenience functions. | |
| file | input.hpp |
| CV input convenience functions. | |
| file | voct.hpp |
| V/Oct input convenience functions. | |
| file | input.hpp |
| Encoder input convenience functions. | |
| file | driver.hpp |
| GPIO driver interface - canonical types for MCU driver implementations. | |
| file | handle.hpp |
| GPIO handle type for hardware abstraction. | |
| file | types.hpp |
| GPIO common types and enumerations. | |
| file | handle.hpp |
| I2C handle type for hardware abstraction. | |
| file | control.hpp |
| ARM Cortex-M interrupt control primitives. | |
| file | types.hpp |
| Interrupt system types and enumerations. | |
| file | output.hpp |
| RGB LED output convenience functions. | |
| file | barrier.hpp |
| ARM Cortex-M memory barrier primitives. | |
| file | input.hpp |
| Pot input convenience functions. | |
| file | system_time.hpp |
| System timing functions for cooperative scheduling. | |
| file | types.hpp |
| Common timing types and enumerations. | |
| file | driver.hpp |
| UART driver interface - canonical types for MCU driver implementations. | |
| file | handle.hpp |
| UART handle type for hardware abstraction. | |
Platform-independent hardware interfaces and convenience layers.
The HAL provides template-based abstractions for common microcontroller peripherals. Each platform implements these interfaces with concrete types that compile to efficient platform-specific code.
Key interfaces:
Convenience layers provide ergonomic APIs on top of drivers:
sbl::adc:: - ADC read, DMA scan start/stopsbl::audio:: - Audio output start with SFINAE validationsbl::cv:: - CV input read (polling and DMA)sbl::button:: - Button readsbl::encoder:: - Encoder readsbl::led:: - RGB LED writesbl::pot:: - Potentiometer read (DMA)sbl::voct:: - V/Oct tracking read (DMA)