Timed function's handling of new ticks_diff changed

pull/7/head
Peter Hinch 2016-11-01 10:52:52 +00:00
rodzic 6a5fd86bdb
commit eda4e2bbd9
1 zmienionych plików z 16 dodań i 12 usunięć

Wyświetl plik

@ -1,23 +1,15 @@
# Time a function call by means of a decorator
# On or shortly beore 1st November 2016 the semantics of utime.ticks_diff changed. If using
# older firmware please use the second example below
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 = ticksdiff(t, utime.ticks_us())
delta = utime.ticks_diff(utime.ticks_us(), t) # Argument order new, old
print('Function {} Time = {:6.3f}ms'.format(myname, delta/1000))
return result
return new_func
@ -26,3 +18,15 @@ def timed_function(f, *args, **kwargs):
def test():
utime.sleep_us(10000)
# Version for use with older firmware
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()) # Argument order old, new
print('Function {} Time = {:6.3f}ms'.format(myname, delta/1000))
return result
return new_func