* Correct endianness of RMT signal
Bits were sent reversed, which worked for 0xff but not at smaller values to dim the LED. Also added rainbow example using a hsv function.
* cargo fmt
* Removed logger and fixed delays
* fix: #180 Remove redundant info in LedcDriver::new
This is an implementation of one of the possible solutions to the issue.
Signed-off-by: Raphael Höser <raphael@hoeser.info>
* Remove speed_mode method from LedcTimerDriver as it's not needed.
* Fix rustfmt issues
Signed-off-by: Raphael Höser <raphael@hoeser.info>
* overhaul UART to support single wire trasimitters/receivers
* add missing methods for uart transmitter/receiver
* fix `uart_config_t`'s `source_clk` being part of a union in `esp-idf v4.x`
* add `esp32c2`'s `PLL F40M` `APB` clock
* revert `uart_wait_tx_done` to timeout of 0
* fix incorrect order in `uart_driver_install`, `rx_buffer` shou always exceed `UART_FIFO_SIZE`
* Refactor `Owner` enum
* Fix double drop on `into_split`
* Add missing `count` methods for the UART drivers, change their return to be able to fit the maximum allowed value, don't run `drop` on temporary internal borrows, update example
* Add RMT receiver
* Changed line 891 to rmt_item32_t,
Changed line 835 to carrier_rm
* rmt.rs - changed line 891 to rmt_item32_t
rmt.rs - changed line 835 to carrier_rm
* Changed rmt channel implementation
* wrong rx_config_t field name
* More cleanup from rebase
* Fix cargo fmt check errors
* guess #1 to fix errors
* Try to fix clippy error
* Can't use log change to println
Change gpio pins for esp32-c3
* old update to esp-idf-hal newer one coming
* Fix format errors
* Update TxRmtDriver and RxRmtDriver
* Fix compile errors
* fix rmt_morse_code.rs error
* Fix format failure
* Fix more errors
* Fix examples
* Change PulsePair durationX type
- use u16 instead of PulseTicks
Co-authored-by: enelson1001 <ednelson5080@gmail>
* initial draft
* working alternative without using i32 id's
* EspSpiDevice + SpiDriverMaster / no global statics
* start splitting implementation in spi & spi_pool
* impl SpiDevice for EspSpiDevice
* spi2_pool draft (spi with software based cs)
* pre master fetch up
* Driver accepts Optional DMA channel + fetch master
* replaced: std with core, mutex with hal's cs
* replaced HashMap with Array
* merged spi2 into spi
* clean up
* replace std with core
* updated loopback example, spi takes dma directly
* moved criticalsection guard out of spi to spi_pool
* added paragraph to the release.md
* rm fn to add / rm device from bus or update config
* rm stored config from EspSpiDevice
* fmt'd
* grammer + changelog update
* implements inverted chipselect for spi.rs #119
* device with optional cs + guarded soft_cs wrapper
* fmt'd
* add pre / post cs delay functionality for wrapper
* no bus.finish for dev with no cs. partial fix#99
* spi driver renaming
* updated naming + locking with &mut SpiDeviceDriver
* updated naming + locking with &mut SpiDeviceDriver
* clean up
* updated CHANGELOG
* WIP: Initial tx rmt implementation
* Rename Bulder to Config to line up with other mods
* WIP Potential traits for a "pulses" mod in embedded-hal
* WIP: Initial tx rmt implementation
* Rename Bulder to Config to line up with other mods
* WIP Potential traits for a "pulses" mod in embedded-hal
* Copied example code from ledc fork. Semi-working example.
* Rename level to pulse. dev-dep versions.
* WIP RMT, Examples
* WIP RMT Fix neopixel example
* WIP RMT morse code work
* WIP RMT fixed morse example
* WIP RMT more config, docs.
* WIP RMT fix compilation
* WIP RMT Fix doc comment in example.
* WIP RMT: notes on examples
* WIP RMT Group up same level config items.
* WIP RMT Change half_inserted to an Option
* WIP RMT Don't need to return Result in clear()
* WIP RMT Config refactor. Into for enum.
* Result instead of Option in PulseTick
* Don't use floats for ticks calcs
* WIP Duration for ticks
* Cleanups.
* Moved Duration logic into PulseDuration.
* Remove unused tick_hz field.
* Cleanups.
* WIP playing around with generics
* Refactored out Vec storage out of Writer
* WIP Heap and Stack implementations for data
* WIP about to nuke tricky const code
* Cleanups
* Own PinState. start/start_blocking.
* Wrap duty percent with range safety.
* Use units::Hertz
* Use Hertz in ticks_hz
* Stop transmitting implementation
* Fix morse example
* rmt peripheral for channels (4 for now)
* Small tweaks
* Morse example to demo more functionality
* WIP Fixes and testing functionality
* Cleanups and notes
* Assign devices to number of channels. Cleanups.
* Sprinkled TODO's around for docs/fixes
* Longer messages don't repeat so remove it for now
* Rename data to signal because data is a too generic term
* More docs
* Don't mention receiving in description.
* More docs
* Rename `add` to `push` like Vec. More docs.
* Rename `Writer` to `Transmit` to line up with rmt docs.
* Accidentally had idle_level in carrier config.
* More docs and cleanups. std compatibility.
* Remove chip::HwChannel import because of a * import later.
* Separate duration to ticks calc. Music example.
* Added comment on example.
* clippy: ok_or_else, Default.
* fixes: mut self, allows/features, alloc, &Pulse.
* only need feature alloc for the use warning.
* rename Signal implementations
* Alloc, morse example fix.
* Didn't need that map. iter does the ref.
* Clippy repairs. println! instead of info!
* Add basic LEDC driver
This driver allows to configure timers and channels but does not provide
advanced features like fading
* Added missing impl_channels.
* Use non-raw types for LEDC hw "handle" markers
This makes Timer and Channel Sync again.
* Add missing config and deps for dev building examples
* Add simple example for LEDC driver
* Channel changed to hold Timer as Borrow<>, to allow Arc etc.
* Provide unstable options from config.toml
This allows to build and run examples of this crate with cargo-espflash
1.2.0 which does not support passing unstable options.
* Provide ESP_IDF_SDKCONFIG_DEFAULTS from config.toml
This requires only to specify the target for a build explicitly.
* Use main task stack size from rust-esp32-std-demo
* Add multi-threaded example for LEDC
* Clean up ledc example and formatting
* Add note on running examples from this repository
* Fix build for ULP HAL
This LEDC interface is not available there.
* Build examples in CI too
* Use core types for no_std build of ledc
* Init channel config and hpoint with Default
This makes the initialization compatible with ESP IDF 4.3 and 4.4 where
the new field 'flag' has been added. As the default for hpoint was
previously zero, omitting it allows to use ..Default::default() in the
struct initialization in both cases.
* Install ldproxy in CI for building examples
It gets installed just before building examples because this takes its
time and should not delay other builds.
Co-authored-by: yunta <maciej.blomberg@mikoton.com>