1. 06 Dec, 2019 2 commits
  2. 19 Nov, 2019 1 commit
  3. 13 Nov, 2019 3 commits
    • Rahix's avatar
      feat(utime): Implement ticks_ms() and ticks_us() · 8926fd02
      Rahix authored
      
      
      Implement the hal functions necessary for utime.ticks_ms() and
      utime.ticks_us().  This enables much more accurate measurements of time
      taken in Pycardium (useful for profiling).
      
      Please note that the tick counter will reset whenever a new app is
      loaded.
      
      Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
      8926fd02
    • fgross's avatar
      feat(pycardium): Enable framebuf module · c27f3fcc
      fgross authored and Rahix's avatar Rahix committed
      The framebuf module provides a framebuffer implementation running purely
      in MicroPython which will increase drawing performance by a lot.  A
      follow-up change will be necessary to connect this framebuffer
      implementation to the display API.
      
      This commit is implements a part of MR !211.
      c27f3fcc
    • Rahix's avatar
      fix(pycardium): Fix delay implementation · dbeec980
      Rahix authored
      
      
      Rewrite the delay implementation to be more accurate and properly handle
      incoming MicroPython interrupts (See issue #177).
      
      For this, the delay is split into two functions:
      
      - systick_delay_precise(): Delay with microsecond accuracy for delays
            less than 1 ms.
      - systick_delay_sleep(): Sleep for a potentially very long time, using
            WFI to put the CPU to sleep.  Whenever the CPU wakes up, this
            function will poll the MicroPython scheduler so it can execute
            pending interrupts.
      
      Ontop, this implementation allows for a future, fast, tick-based
      monotonic time implementation (e.g. mp_hal_ticks_ms).
      
      Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
      dbeec980
  4. 11 Nov, 2019 1 commit
  5. 10 Nov, 2019 3 commits
  6. 09 Nov, 2019 2 commits
  7. 05 Oct, 2019 2 commits
    • Foaly's avatar
      docs: Improve documentation for the BHI160 · e804de47
      Foaly authored and Rahix's avatar Rahix committed
      e804de47
    • Philip Stewart's avatar
      fix(gfx/display): Draw partially clipped primitives · 14d5abcc
      Philip Stewart authored and Rahix's avatar Rahix committed
      Fix two bugs in the display/gfx module:
      
      1. The animation of the simple_menu used in the main menu had the issue
         that there is a black line visible at the top.  This is due the
         gfx_puts method ignoring lines, where the top pixel of the string is
         above the top of the screen.  As gfx_puts uses gfx_setpixel which in
         turn ignores pixels outside of the screen, remove the check in
         gfx_puts.
      2. X and Y coordinates were cast to unsigned-ints before being given to
         the gfx-library which means calls like circ(0, -10, 30) would be draw
         at coordinates like [0,65526].  Fix this by changing the data-type of
         all coordinates to signed-integers.
      
      Also remove the x and y ranges from the documentation of the individual
      python functions and instead add a general documentation about the
      screen and it's size/coordinate system.
      14d5abcc
  8. 04 Oct, 2019 2 commits
    • Rahix's avatar
      fix(build): Fix module changes not getting picked up · d71a6cf8
      Rahix authored
      
      
      Previously, we left out the dependency of the QSTR header on
      `modules.h`.  This was done to prevent rebuilds of the entire
      MicroPython sources whenever a Pycardium module is changed. This
      leads to issues where QSTRs got out of sync and weird errors like
      the following could happen:
      
          import foo_module
      
          Exception: No module `abc_def` (a different string than expected)
      
      Attempt to fix this by only updating the QSTR header when the
      module-header actually changes.  For this, a few workarounds are needed:
      
      - Replace symlinks with actual copied files so timestamps change on
        updates.
      - Add a hack so meson picks up on the dependency of the file in genhdr/
      - Rename the outer file so older meson versions don't complain about
        multiple targets with the same name.
      
      Co-authored-by: dx's avatardx <dequis@dequis.org>
      Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
      d71a6cf8
    • Rahix's avatar
      chore: Sort some lists in meson files · baa32f2a
      Rahix authored
      
      
      Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
      baa32f2a
  9. 25 Sep, 2019 1 commit
  10. 22 Sep, 2019 1 commit
  11. 21 Sep, 2019 2 commits
    • Ferdinand Bachmann's avatar
      feat(rtc): Add monotonic clock · f1251d66
      Ferdinand Bachmann authored and Rahix's avatar Rahix committed
      Squashed commits:
      
      e94f7bf9 epicardium/rtc: add monotonic time
      e0691c6d pycardium/modules/utime.c: add bindings for monotonic time
      756c13df epicardium/rtc: fix numerically unstable subsecond decoding
      
               the subsecond encoding function from epic_rtc_set_milliseconds
               and the corresponding decoding function from
               epic_rtc_get_milliseconds are not numerically stable.
      
               i.e., encoding 5 milliseconds to 20 subsecs and immediately
               afterwards decoding that yields 4 milliseconds.
      
               Adding a bias of 999 (0.24 milliseconds) to the decoding
               function makes it numerically stable, while never decoding any
               subsecond value to more than 999 milliseconds.
      
      e99e278b epicardium/rtc: only poll time once for calculating monotonic_offset
      18936b7e pycardium/modules/utime.c: run clang-format
      869ac617 epicardium/rtc: add explanation comment for numerically stable subsecond decode
      f1251d66
    • swym's avatar
      feat(pycardium): Add ESB API · 4e4962d1
      swym authored and Rahix's avatar Rahix committed
      4e4962d1
  12. 16 Sep, 2019 1 commit
  13. 14 Sep, 2019 1 commit
  14. 06 Sep, 2019 1 commit
  15. 05 Sep, 2019 1 commit
  16. 03 Sep, 2019 4 commits
  17. 31 Aug, 2019 4 commits
  18. 30 Aug, 2019 2 commits
  19. 29 Aug, 2019 2 commits
  20. 28 Aug, 2019 4 commits