Commit Graph

25 Commits

Author SHA1 Message Date
Kevin Thomas 7a42b2e088 Add 0x04_pwm_cbm: bare-metal RP2350 PWM driver
- PWM slice 4, channel B on GPIO25 (onboard LED)
- Duty cycle sweep 0-100% in 5% steps for breathing effect
- Wrap 9999 with no clock division (~650 Hz from ROSC)
- UART reports each duty step
- 1390B FLASH, 11 source files, zero warnings
2026-04-05 16:21:47 -04:00
Kevin Thomas d912771a5e Add 0x03_button_cbm: bare-metal RP2350 button driver
- GPIO15 active-low button input with internal pull-up
- 20ms software debounce via busy-wait confirmation
- LED mirrors button state, UART reports edge transitions
- New gpio_config_input_pullup() in GPIO driver
- 1555B FLASH, 13 source files, zero warnings
2026-04-05 16:06:46 -04:00
Kevin Thomas d5bdf49894 refactor: convert 0x01_uart_cbm and 0x02_blink_cbm to bare-metal Inc/Src structure
- Restructure flat files into Inc/ (headers) and Src/ (sources)
- Replace constants.h with rp2350.h register layer (datasheet-verified)
- Add full Doxygen docstrings on all files, functions, and structs
- Replace build.bat/clean.bat with cross-platform Makefile
- Fix GPIO_IN offset (0x004), XOSC COUNT offset (0x10), SRAM size (520K)
- Rename blink_* API to led_* (name after peripheral, not feature)
- Build outputs to build/ directory
- Cross-platform .vscode configs (Windows/macOS/Linux)
2026-04-05 15:57:44 -04:00
Kevin Thomas eb6150ffad Added cbm 1 2 2026-04-04 12:11:58 -04:00
Kevin Thomas 9834d5c96c Fixed Rust drivers 2026-04-02 11:36:06 -04:00
Kevin Thomas 1392a31221 Delete drivers/0x01_uart_asm_arm directory 2026-03-28 19:45:51 -04:00
Kevin Thomas 67013421c3 Add new driver implementations and workspace updates 2026-03-27 11:19:24 -04:00
Kevin Thomas cca3fe4cff Add 0x09_dht11_rust: DHT11 temperature/humidity sensor driver 2026-03-25 21:21:35 -04:00
Kevin Thomas 0b207fd8b4 Add // comments to all use statements in driver .rs files
- Add // comments above top-level use imports in uart.rs, blink.rs, button.rs
- Add // comments above test module use imports (use super::*, Infallible,
  ErrorType) in all 8 driver .rs files
- All 8 drivers build, all 75 tests pass
2026-03-25 18:54:19 -04:00
Kevin Thomas 450f84ef75 Fix duplicate //! headers in board.rs, update @brief, add // comments to lib.rs pub mod
- Remove duplicate //! @file/@brief/@author/@date blocks from all 8 board.rs
- Update original @brief to consistent 'Board-level HAL helpers for the XXX driver'
- Add // comment above pub mod in all 7 lib.rs files
- All 8 drivers build, all 75 tests pass
2026-03-25 18:45:41 -04:00
Kevin Thomas 3fc502854a Add inline // comments to all main.rs and board.rs boilerplate across 0x01-0x08 Rust drivers
- Add // comments to mod declarations, use imports, static items, and
  PICOTOOL_ENTRIES in all 8 main.rs files matching rp-hal template style
- Add //! file headers to all 8 board.rs files
- Add // comments to all board.rs use imports and HAL alias
- All 8 drivers build successfully, all 75 tests pass
2026-03-25 18:34:20 -04:00
Kevin Thomas db25706ae7 refactor(drivers): add board.rs module, slim main.rs, fix docstrings across all 8 Rust drivers
- Add board.rs to all 8 drivers: constants, type aliases, init functions,
  and HAL-specific helpers with full docstrings and pub(crate) visibility
- Slim main.rs to boilerplate + main() only, zero helper functions
- Fix i2c.rs: add file header, full docstrings on all functions
- Fix lcd1602.rs: add file header, full docstrings on all functions
- Fix lib.rs headers for 0x07 and 0x08
- All 8 drivers build and all 75 tests pass
2026-03-25 18:10:00 -04:00
Kevin Thomas c68e158f16 feat: add 0x08_lcd1602_rust driver with 14 unit tests 2026-03-25 17:31:05 -04:00
Kevin Thomas b0299bf95e feat: add 0x07_i2c_rust driver with 12 unit tests 2026-03-25 17:16:51 -04:00
Kevin Thomas bfb6f5541e feat: add 0x06_adc_rust driver with 9 unit tests 2026-03-25 12:25:09 -04:00
Kevin Thomas 05ae72d0a1 feat: add 0x05_servo_rust driver with 13 unit tests 2026-03-25 12:04:01 -04:00
Kevin Thomas 9748b6848c feat: add 0x04_pwm_rust driver with 11 unit tests 2026-03-25 11:50:06 -04:00
Kevin Thomas 12da31297e feat: add 0x03_button_rust driver with 8 unit tests 2026-03-25 11:37:45 -04:00
Kevin Thomas e5f6bb7f15 feat: add unit tests for blink driver with mock pin 2026-03-25 11:25:13 -04:00
Kevin Thomas 2f9abc5a42 fix: allow dead_code on blink module (on/off match C API) 2026-03-24 18:21:46 -04:00
Kevin Thomas 4bb165375f feat: add 0x02_blink_rust driver 2026-03-24 17:54:27 -04:00
Kevin Thomas 5d2767c42d Add 0x01_uart_rust driver and update README 2026-03-23 13:11:16 -04:00
Kevin Thomas c55465a6aa Fixed drivers 2026-03-23 11:20:32 -04:00
Kevin Thomas b4b5beed12 Updated Drivers 2026-03-23 09:33:04 -04:00
Kevin Thomas 334f511256 Drivers 2026-03-22 20:39:16 -04:00