-
Notifications
You must be signed in to change notification settings - Fork 232
Capture
API
#5
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
Possibly methods to choose the capture "edge". Should this capture the rising edge or the falling edge? This is useful in generic context to capture on "high" signal: you want to capture the rising edge and then the falling edge. Another question: is a |
Yep, I think most STM32F3/4/7 and maybe 0 have options for rising/falling/both (along with a whole heap of other options...). See CCER register. |
OK. The F103 only has two options: rising and falling. The F303 has three: rising, falling and both. I would prefer if each device crate didn't end up inventing their own trait CaptureOn<Edge> {
fn capture_on(_: Edge);
} then generic APIs can use a bound like |
Update: this trait is available in release v0.1.0 behind the "unproven" Cargo feature. |
Hello, With this API, I think it would be difficult to write drivers. Maybe a better way to handle this would be to use multiple traits : trait CaptureRising {
fn capture();
}
trait CaptureFalling {
fn capture();
}
trait CaptureBoth: CaptureRising + CaptureFalling {
fn capture();
} And it will be used like this: struct MyDevice<C: CaptureRising> {
capture: C
}
impl<C: CaptureRising> MyDevice {
fn something(&self) {
self.capture.capture();
}
} With this, the driver will be compatible with all devices which implement |
The text was updated successfully, but these errors were encountered: