X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/blobdiff_plain/38566e3a72507341517804c374e71e3bd4c82934..a8ed516cc3b6c4cdd7a346f897aa1a520071a239:/src/adafruit_blinka/agnostic/time.py diff --git a/src/adafruit_blinka/agnostic/time.py b/src/adafruit_blinka/agnostic/time.py new file mode 100644 index 0000000..078b833 --- /dev/null +++ b/src/adafruit_blinka/agnostic/time.py @@ -0,0 +1,27 @@ +from adafruit_blinka import agnostic +if agnostic.implementation == "circuitpython": + from time import * +elif agnostic.implementation == "micropython": + import utime + from utime import sleep + + from ucollections import namedtuple + _struct_time = namedtuple("struct_time", ("tm_year", "tm_mon", "tm_mday", "tm_hour", "tm_min", "tm_sec", "tm_wday", "tm_yday", "tm_isdst")) + + def marshal_time(tm_year, tm_mon, tm_mday, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=-1, tm_yday=-1, tm_isdst=-1): + _struct_time(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst) + + def struct_time(t): + return marshal_time(*t) + + total_ms = 0 + prev_ticks_ms = utime.ticks_ms() + def monotonic(): + """ + Assumes that monotonic is called more frequently than the wraparound of micropython's utime.ticks_ms() + """ + global prev_ticks_ms, total_ms + ticks_ms = utime.ticks_ms() + total_ms += utime.ticks_diff(ticks_ms, prev_ticks_ms) + prev_ticks_ms = ticks_ms + return total_ms * 0.001 \ No newline at end of file