15574cd665
This commit adds time.ticks_ms/us support using RTC1 as the timebase. It also adds the time.ticks_add/diff helper functions. This feature can be enabled using MICROPY_PY_TIME_TICKS. If disabled the system uses the legacy sleep methods and does not have any ticks functions. In addition support for MICROPY_EVENT_POLL_HOOK was added to the time.sleep_ms(x) function, making this function more power efficient and allows support for select.poll/asyncio. To support this, the RTC's CCR0 was used to schedule a ~1msec event to wakeup the CPU. Some important notes about the RTC timebase: - Since the granularity of RTC1's ticks are approx 30usec, time.ticks_us is not perfect, does not have 1us resolution, but is otherwise quite usable. For tighter measurments the ticker's 1MHz counter should be used. - time.ticks_ms(x) should *not* be called in an IRQ with higher prio than the RTC overflow irq (3). If so it introduces a race condition and possibly leads to wrong tick calculations. See #6171 and #6202. |
||
---|---|---|
.. | ||
adc.c | ||
adc.h | ||
i2c.c | ||
i2c.h | ||
modmachine.c | ||
modmachine.h | ||
pin.c | ||
pin.h | ||
pwm.c | ||
pwm.h | ||
rtcounter.c | ||
rtcounter.h | ||
spi.c | ||
spi.h | ||
temp.c | ||
temp.h | ||
timer.c | ||
timer.h | ||
uart.c | ||
uart.h |