rust-embedded / embedded-hal

A Hardware Abstraction Layer (HAL) for embedded systems
Apache License 2.0
2.01k stars 200 forks source link

Discussion: CapturePin trait #176

Open YuhanLiin opened 4 years ago

YuhanLiin commented 4 years ago

I'd like to propose a new CapturePin trait for representing a single input capture channel. It is to the Capture trait what PwmPin is to Pwm. Since single-channel singleton abstractions are preferable to multi-channel abstractions, a trait like CapturePin should become the recommended way to handle input capture hardware. The trait will only have the method .capture(), which has the same API as the same method in Capture trait except it doesn't pass in a channel. Since not every chip supports enabling/disabling single capture channels, the enable and disable methods are omitted (perhaps they can be a separate sub-trait). For a prototype of what the trait will look like, refer to this PR.

ryankurte commented 4 years ago

hey thanks for the issue / PR! I haven't used PWM capture in some time, @rust-embedded/hal team any thoughts about this?