kopia lustrzana https://github.com/peterhinch/micropython-samples
Samples adapted for changing ticks_diff semantics
rodzic
c0ea6bad60
commit
6a5fd86bdb
|
@ -6,7 +6,18 @@
|
|||
import ubinascii
|
||||
from simple import MQTTClient
|
||||
from machine import unique_id
|
||||
from time import sleep, ticks_ms, ticks_diff
|
||||
from utime import sleep, ticks_ms, ticks_diff
|
||||
|
||||
def tdiff():
|
||||
new_semantics = ticks_diff(2, 1) == 1
|
||||
def func(old, new):
|
||||
nonlocal new_semantics
|
||||
if new_semantics:
|
||||
return ticks_diff(new, old)
|
||||
return ticks_diff(old, new)
|
||||
return func
|
||||
|
||||
ticksdiff = tdiff()
|
||||
|
||||
SERVER = "192.168.0.23"
|
||||
CLIENT_ID = ubinascii.hexlify(unique_id())
|
||||
|
@ -20,7 +31,7 @@ mint = 5000
|
|||
|
||||
def sub_cb(topic, msg):
|
||||
global t, maxt, mint
|
||||
dt = ticks_diff(t, ticks_ms())
|
||||
dt = ticksdiff(t, ticks_ms())
|
||||
print('echo received in {} ms'.format(dt))
|
||||
print((topic, msg))
|
||||
maxt = max(maxt, dt)
|
||||
|
|
|
@ -1,5 +1,16 @@
|
|||
import pyb, utime
|
||||
|
||||
def tdiff():
|
||||
new_semantics = utime.ticks_diff(2, 1) == 1
|
||||
def func(old, new):
|
||||
nonlocal new_semantics
|
||||
if new_semantics:
|
||||
return utime.ticks_diff(new, old)
|
||||
return utime.ticks_diff(old, new)
|
||||
return func
|
||||
|
||||
ticksdiff = tdiff()
|
||||
|
||||
class EncoderTimed(object):
|
||||
def __init__(self, pin_x, pin_y, reverse, scale):
|
||||
self.reverse = reverse
|
||||
|
@ -29,10 +40,10 @@ class EncoderTimed(object):
|
|||
def rate(self): # Return rate in edges per second
|
||||
self.x_interrupt.disable()
|
||||
self.y_interrupt.disable()
|
||||
if utime.ticks_diff(self.tlast, utime.ticks_us) > 2000000: # It's stopped
|
||||
if ticksdiff(self.tlast, utime.ticks_us) > 2000000: # It's stopped
|
||||
result = 0.0
|
||||
else:
|
||||
result = 1000000.0/(utime.ticks_diff(self.tprev, self.tlast))
|
||||
result = 1000000.0/(ticksdiff(self.tprev, self.tlast))
|
||||
self.x_interrupt.enable()
|
||||
self.y_interrupt.enable()
|
||||
result *= self.scale
|
||||
|
|
|
@ -1,13 +1,23 @@
|
|||
# Time a function call by means of a decorator
|
||||
|
||||
import utime
|
||||
def tdiff():
|
||||
new_semantics = utime.ticks_diff(2, 1) == 1
|
||||
def func(old, new):
|
||||
nonlocal new_semantics
|
||||
if new_semantics:
|
||||
return utime.ticks_diff(new, old)
|
||||
return utime.ticks_diff(old, new)
|
||||
return func
|
||||
|
||||
ticksdiff = tdiff()
|
||||
|
||||
def timed_function(f, *args, **kwargs):
|
||||
myname = str(f).split(' ')[1]
|
||||
def new_func(*args, **kwargs):
|
||||
t = utime.ticks_us()
|
||||
result = f(*args, **kwargs)
|
||||
delta = utime.ticks_diff(t, utime.ticks_us())
|
||||
delta = ticksdiff(t, utime.ticks_us())
|
||||
print('Function {} Time = {:6.3f}ms'.format(myname, delta/1000))
|
||||
return result
|
||||
return new_func
|
||||
|
|
Ładowanie…
Reference in New Issue