Timed function and fastboot added

pull/7/head
Peter Hinch 2016-06-21 10:24:50 +01:00
rodzic 6571dc8104
commit 8ba7da0f1a
8 zmienionych plików z 95 dodań i 9 usunięć

Wyświetl plik

@ -1,19 +1,39 @@
# micropython-samples
A place for assorted code ideas for MicroPython.
A place for assorted code ideas for MicroPython. Most are targeted at the Pyboard variants.
mutex: A class providing mutal exclusion enabling interrupt handlers and the main program to
access shared data in a manner which ensures data integrity.
## mutex
A class providing mutal exclusion enabling interrupt handlers and the main program to access shared
data in a manner which ensures data integrity.
watchdog: How to access the simpler of the Pyboard's watchdog timers.
## watchdog
Access the simpler of the Pyboard's watchdog timers.
reverse: Fast reverse a bytearray.
## reverse
Fast reverse a bytearray.
font: Convert a C file produced by GLCD Font Creator to Python for storage as persistent byte code.
## font
Convert a C file produced by GLCD Font Creator to Python for storage as persistent byte code.
ds3231_pb: Driver for the DS3231 low cost precison RTC, including a facility to calibrate the
Pyboard's RTC from the DS3231
## ds3231_pb
Driver for the DS3231 low cost precison RTC, including a facility to calibrate the Pyboard's RTC
from the DS3231.
Buildcheck: Raise an exception if a firmware build is earlier than a given date.
## Buildcheck
Raise an exception if a firmware build is earlier than a given date.
## timed_function
Time a function's execution using a decorator
## fastbuild - Pyboard use under Linux
Build MicroPython with your frozen bytecode, put the Pyboard into DFU mode, and deploy the build to
the board with a single command. Takes just over 60 seconds on a fast PC. Note the use of make's j
argument to use mutliple cores. Empirically 8 gave the fastest build on my core i7 4/8 core laptop:
adjust to suit your PC.
Includes udev rules to avoid jumps from /dev/ttyACM0 to /dev/ttyACM1: ensures Pyboards of all types
appear as /dev/pyboard. Also rules for USB connected WiPy and FTDI USB/serial adaptor.
# License
Any code placed here is released under the MIT License (MIT).
The MIT License (MIT)

Wyświetl plik

@ -0,0 +1,5 @@
# FTDI lead
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", MODE:="0666"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", SYMLINK+="ftdi", MODE:="0666"

Wyświetl plik

@ -0,0 +1,6 @@
# 0403:6015 - WiPy board ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", ENV{ID_MM_DEVICE_IGNORE}="1"
# WiPy appears as /dev/wipy
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", MODE:="0666"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", SYMLINK+="wipy", MODE:="0666"

Wyświetl plik

@ -0,0 +1,8 @@
# f055:9800, 9801, 9802 MicroPython pyboard
# Instantiate Pyboard V1.0, V1.1 or Lite as /dev/pyoard
ATTRS{idVendor}=="f055", ENV{MTP_NO_PROBE}="1"
ATTRS{idVendor}=="f055", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="f055", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="f055", SYMLINK+="pyboard", MODE:="0666", GROUP="adminpete"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="f055", SYMLINK+="pyboard", MODE:="0666", GROUP="adminpete"

17
fastbuild/pyb_boot 100644
Wyświetl plik

@ -0,0 +1,17 @@
#!/usr/bin/env python
# Edit this to match the location of micropython/tools and the Pyboard device
import sys
sys.path.append('/mnt/qnap2/data/Projects/MicroPython/micropython/tools')
import pyboard
def main():
pyb=pyboard.Pyboard('/dev/pyboard')
pyb.enter_raw_repl()
try:
pyb.exec_raw('pyb.bootloader()')
except:
pass
if __name__ == "__main__":
main()

Wyświetl plik

@ -0,0 +1,6 @@
#! /bin/bash
# PYB V1.1 build script for 4/8 Core i7 and frozen bytecode
# Run from micropython/stmhal
# edit location of pyb_boot
make BOARD=PYBV10 clean && make -j 8 BOARD=PYBV10 FROZEN_MPY_DIR=scripts && /mnt/qnap2/Scripts/pyb_boot && make BOARD=PYBV10 deploy

Wyświetl plik

@ -0,0 +1,6 @@
#! /bin/bash
# PYB V1.1 build script for 4/8 Core i7 and frozen bytecode
# Run from micropython/stmhal
# edit location of pyb_boot
make BOARD=PYBV11 clean && make -j 8 BOARD=PYBV11 FROZEN_MPY_DIR=scripts && /mnt/qnap2/Scripts/pyb_boot && make BOARD=PYBV11 deploy

Wyświetl plik

@ -0,0 +1,18 @@
# Time a function call by means of a decorator
import utime
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())
print('Function {} Time = {:6.3f}ms'.format(myname, delta/1000))
return result
return new_func
@timed_function
def test():
utime.sleep_us(10000)