|
1 | 1 | //! # Quadrature Encoder Interface |
2 | | -use crate::{ |
3 | | - hal::{self, Direction}, |
4 | | - pac::RCC, |
5 | | - rcc, |
6 | | -}; |
| 2 | +
|
| 3 | +use crate::{pac::RCC, rcc}; |
7 | 4 |
|
8 | 5 | pub trait Pins<TIM> {} |
9 | 6 | use crate::timer::PinC1; |
@@ -48,22 +45,39 @@ impl<TIM: Instance, PINS> Qei<TIM, PINS> { |
48 | 45 | } |
49 | 46 | } |
50 | 47 |
|
51 | | -impl<TIM: Instance, PINS> hal::Qei for Qei<TIM, PINS> { |
| 48 | +impl<TIM: Instance, PINS> embedded_hal::Qei for Qei<TIM, PINS> { |
52 | 49 | type Count = TIM::Count; |
53 | 50 |
|
54 | 51 | fn count(&self) -> Self::Count { |
55 | 52 | self.tim.read_count() as Self::Count |
56 | 53 | } |
57 | 54 |
|
58 | | - fn direction(&self) -> Direction { |
| 55 | + fn direction(&self) -> embedded_hal::Direction { |
59 | 56 | if self.tim.read_direction() { |
60 | | - hal::Direction::Upcounting |
| 57 | + embedded_hal::Direction::Upcounting |
61 | 58 | } else { |
62 | | - hal::Direction::Downcounting |
| 59 | + embedded_hal::Direction::Downcounting |
63 | 60 | } |
64 | 61 | } |
65 | 62 | } |
66 | 63 |
|
| 64 | +impl<TIM: Instance, PINS> embedded_hal_one::qei::blocking::Qei for Qei<TIM, PINS> { |
| 65 | + type Error = core::convert::Infallible; |
| 66 | + type Count = TIM::Count; |
| 67 | + |
| 68 | + fn count(&self) -> Result<Self::Count, Self::Error> { |
| 69 | + Ok(self.tim.read_count() as Self::Count) |
| 70 | + } |
| 71 | + |
| 72 | + fn direction(&self) -> Result<embedded_hal_one::qei::Direction, Self::Error> { |
| 73 | + Ok(if self.tim.read_direction() { |
| 74 | + embedded_hal_one::qei::Direction::Upcounting |
| 75 | + } else { |
| 76 | + embedded_hal_one::qei::Direction::Downcounting |
| 77 | + }) |
| 78 | + } |
| 79 | +} |
| 80 | + |
67 | 81 | pub trait Instance: crate::Sealed + rcc::Enable + rcc::Reset { |
68 | 82 | type Count; |
69 | 83 |
|
|
0 commit comments