21: First I2C implementation r=robamu a=robamu
Initial I2C HAL implementation.
Only the I2cMaster was tested so far, I2cSlave will be tested next.
Master side was tested with a temerature sensor example application
in the vorago-reb1 crate
Co-authored-by: Robin Mueller <robin.mueller.m@gmail.com>
Initial I2C HAL implementation.
Only the I2cMaster was tested so far, I2cSlave will be tested next.
Master side was tested with a temerature sensor example application
in the vorago-reb1 crate
19: Clock passing and SPI Updates r=robamu a=robamu
1. Using `impl Into<Hertz>` instead of Hertz now to increase usability for users
2. Update for SPI API to increase usability
Co-authored-by: Robin Mueller <robin.mueller.m@gmail.com>
17: Added SPI implementation r=robamu a=robamu
- First SPI HAL implementation for blocking mode
- Added example for SPI as well which uses loopback mode
and regular mode
Co-authored-by: Robin Mueller <robin.mueller.m@gmail.com>
16: added blocking delay functions r=robamu a=robamu
- DelayUs and DelayMs trait implementations for CountDown timer peripherals
- Tested using an oscilloscope to verify correct timing behaviour
- Bugfix for wait function
Co-authored-by: Robin Mueller <robin.mueller.m@gmail.com>
14: Added GPIO IRQ interface, refactoring r=robamu a=robamu
- Adds the IRQ interface to configure interrupts on output and input pins
- Moved the `FilterClkSel` struct to the `clock` module, reexporting in `gpio`
- Added function to set clock divisor registers
- Clearing output state at initialization of Output pins
- Added utility function to set up millisecond timer with `TIM0`
Co-authored-by: Robin Mueller <robin.mueller.m@gmail.com>
- Adds the IRQ interface to configure interrupts on output and input pins
- Moved the `FilterClkSel` struct to the `clock` module, reexporting in `gpio`
- Added function to set clock divisor registers
- Clearing output state at initialization of Output pins
- Added utility function to set up millisecond timer
12: Refactored GPIO module r=robamu a=robamu
- The GPIO module uses type-level programming now
- Implementation heavily based on the ATSAMD GPIO HAL:
https://docs.rs/atsamd-hal/0.13.0/atsamd_hal/gpio/v2/index.html
- Changes to API, but no passing of peripheral references necessary
anymore. All examples and tests updated accordingly
Co-authored-by: Robin Mueller <robin.mueller.m@gmail.com>
- The GPIO module uses type-level programming now
- Implementation heavily based on the ATSAMD GPIO HAL:
https://docs.rs/atsamd-hal/0.13.0/atsamd_hal/gpio/v2/index.html
- Changes to API, but no passing of peripheral references necessary
anymore. All examples and tests updated accordingly
- Clock module to set and retrieve system clock which can have
varying frequencies. Also allows enabling peripheral clocks
- Prelude updated
- Common time types added, based on stm32f1xx HAL implementation
- Basic timer implementation added