summaryrefslogtreecommitdiff
path: root/tests/pyb/timer_callback.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-02-23 13:18:33 +0000
committerDamien George <damien.p.george@gmail.com>2015-02-23 13:18:33 +0000
commit626ee90ce194616f72eb49750f007e1604e3309c (patch)
tree2003b664ac51d7c7977deb676bc3effdc9600310 /tests/pyb/timer_callback.py
parentd38939e676d0c36d81b1763fa3fbfcb53c649710 (diff)
tests: Add more tests for pyb.Timer class.
Diffstat (limited to 'tests/pyb/timer_callback.py')
-rw-r--r--tests/pyb/timer_callback.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/pyb/timer_callback.py b/tests/pyb/timer_callback.py
new file mode 100644
index 000000000..060182053
--- /dev/null
+++ b/tests/pyb/timer_callback.py
@@ -0,0 +1,41 @@
+# check callback feature of the timer class
+
+import pyb
+from pyb import Timer
+
+# callback function that disables the callback when called
+def cb1(t):
+ print("cb1")
+ t.callback(None)
+
+# callback function that disables the timer when called
+def cb2(t):
+ print("cb2")
+ t.deinit()
+
+# callback where cb4 closes over cb3.y
+def cb3(x):
+ y = x
+ def cb4(t):
+ print("cb4", y)
+ t.callback(None)
+ return cb4
+
+# create a timer with a callback, using callback(None) to stop
+tim = Timer(1, freq=1000, callback=cb1)
+pyb.delay(10)
+
+# create a timer with a callback, using deinit to stop
+tim = Timer(2, freq=1000, callback=cb2)
+pyb.delay(10)
+
+# create a timer, then set the freq, then set the callback
+tim = Timer(4)
+tim.init(freq=2000)
+tim.callback(cb1)
+pyb.delay(10)
+
+# test callback with a closure
+tim.init(freq=3000)
+tim.callback(cb3(3))
+pyb.delay(10)