kopia lustrzana https://github.com/peterhinch/micropython-samples
ssd1306_test I2C uses OD pins. Old code in timed_function replaced.
rodzic
f01ec022da
commit
f92c10d511
|
@ -64,8 +64,8 @@ def test(use_spi=False):
|
||||||
# Gnd Gnd
|
# Gnd Gnd
|
||||||
# Y9 CLK
|
# Y9 CLK
|
||||||
# Y10 DATA
|
# Y10 DATA
|
||||||
pscl = machine.Pin('Y9', machine.Pin.OUT_PP)
|
pscl = machine.Pin('Y9', machine.Pin.OPEN_DRAIN)
|
||||||
psda = machine.Pin('Y10', machine.Pin.OUT_PP)
|
psda = machine.Pin('Y10', machine.Pin.OPEN_DRAIN)
|
||||||
i2c = machine.I2C(scl=pscl, sda=psda)
|
i2c = machine.I2C(scl=pscl, sda=psda)
|
||||||
# i2c = machine.I2C(2)
|
# i2c = machine.I2C(2)
|
||||||
ssd = SSD1306_I2C(WIDTH, HEIGHT, i2c)
|
ssd = SSD1306_I2C(WIDTH, HEIGHT, i2c)
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# Time a function call by means of a decorator
|
# 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
|
import utime
|
||||||
|
|
||||||
|
# @timed_function
|
||||||
|
# Print time taken by a function call
|
||||||
|
|
||||||
def timed_function(f, *args, **kwargs):
|
def timed_function(f, *args, **kwargs):
|
||||||
myname = str(f).split(' ')[1]
|
|
||||||
def new_func(*args, **kwargs):
|
def new_func(*args, **kwargs):
|
||||||
t = utime.ticks_us()
|
t = utime.ticks_us()
|
||||||
result = f(*args, **kwargs)
|
result = f(*args, **kwargs)
|
||||||
delta = utime.ticks_diff(utime.ticks_us(), t) # Argument order new, old
|
delta = utime.ticks_diff(utime.ticks_us(), t)
|
||||||
print('Function {} Time = {:6.3f}ms'.format(myname, delta/1000))
|
print('Function {} Time = {:6.3f}ms'.format(f.__name__, delta/1000))
|
||||||
return result
|
return result
|
||||||
return new_func
|
return new_func
|
||||||
|
|
||||||
|
@ -18,15 +18,21 @@ def timed_function(f, *args, **kwargs):
|
||||||
def test():
|
def test():
|
||||||
utime.sleep_us(10000)
|
utime.sleep_us(10000)
|
||||||
|
|
||||||
# Version for use with older firmware
|
# @time_acc_function
|
||||||
def timed_function(f, *args, **kwargs):
|
# applied to a function causes it to print the number of times it was called
|
||||||
myname = str(f).split(' ')[1]
|
# with the accumulated time used.
|
||||||
|
|
||||||
|
def time_acc_function(f, *args, **kwargs):
|
||||||
|
ncalls = 0
|
||||||
|
ttime = 0.0
|
||||||
def new_func(*args, **kwargs):
|
def new_func(*args, **kwargs):
|
||||||
|
nonlocal ncalls, ttime
|
||||||
t = utime.ticks_us()
|
t = utime.ticks_us()
|
||||||
result = f(*args, **kwargs)
|
result = f(*args, **kwargs)
|
||||||
delta = utime.ticks_diff(t, utime.ticks_us()) # Argument order old, new
|
delta = utime.ticks_diff(utime.ticks_us(), t)
|
||||||
print('Function {} Time = {:6.3f}ms'.format(myname, delta/1000))
|
ncalls += 1
|
||||||
|
ttime += delta
|
||||||
|
print('Function: {} Call count = {} Total time = {:6.3f}ms'.format(f.__name__, ncalls, ttime/1000))
|
||||||
return result
|
return result
|
||||||
return new_func
|
return new_func
|
||||||
|
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue