kopia lustrzana https://github.com/peterhinch/micropython-samples
Encoders: yapf formatting
rodzic
52eeb2220c
commit
0e08c73c17
|
@ -5,6 +5,7 @@
|
|||
|
||||
import pyb
|
||||
|
||||
|
||||
class Encoder:
|
||||
def __init__(self, pin_a, pin_b, reverse=0, scale=1):
|
||||
self.reverse = reverse
|
||||
|
@ -27,7 +28,7 @@ class Encoder:
|
|||
def position(self, value=None):
|
||||
if value is not None:
|
||||
self._pos = round(value / self.scale)
|
||||
return self._pos*self.scale
|
||||
return self._pos * self.scale
|
||||
|
||||
def value(self):
|
||||
return self._pos
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
from machine import Pin
|
||||
|
||||
|
||||
class Encoder:
|
||||
def __init__(self, pin_a, pin_b, scale=1):
|
||||
self.scale = scale # Optionally scale encoder rate to distance/angle
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
import utime
|
||||
from machine import Pin, disable_irq, enable_irq
|
||||
|
||||
|
||||
class EncoderTimed:
|
||||
def __init__(self, pin_a, pin_b, scale=1):
|
||||
self.scale = scale # Optionally scale encoder rate to distance/angle
|
||||
|
@ -39,11 +40,11 @@ class EncoderTimed:
|
|||
tlast = self.tlast # Cache current values
|
||||
tprev = self.tprev
|
||||
enable_irq(state)
|
||||
if utime.ticks_diff(utime.ticks_us(), tlast) > 2_000_000: # It's stopped
|
||||
if utime.ticks_diff(utime.ticks_us(), tlast) > 2_000_000: # It's stopped
|
||||
result = 0.0
|
||||
else:
|
||||
try:
|
||||
result = 1000000.0/(utime.ticks_diff(tlast, tprev))
|
||||
result = 1000000.0 / (utime.ticks_diff(tlast, tprev))
|
||||
except ZeroDivisionError:
|
||||
result = 0.0
|
||||
result *= self.scale
|
||||
|
|
Ładowanie…
Reference in New Issue