microbitdisplay.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef __MICROPY_INCLUDED_MICROBIT_DISPLAY_H__
  2. #define __MICROPY_INCLUDED_MICROBIT_DISPLAY_H__
  3. #include "py/runtime.h"
  4. #include "microbitimage.h"
  5. typedef struct _microbit_display_obj_t {
  6. mp_obj_base_t base;
  7. uint8_t image_buffer[5][5];
  8. uint8_t previous_brightness;
  9. bool active;
  10. /* Current row for strobing */
  11. uint8_t strobe_row;
  12. /* boolean histogram of brightness in buffer */
  13. uint16_t brightnesses;
  14. uint16_t pins_for_brightness[MAX_BRIGHTNESS+1];
  15. } microbit_display_obj_t;
  16. #define ASYNC_MODE_STOPPED 0
  17. #define ASYNC_MODE_ANIMATION 1
  18. #define ASYNC_MODE_CLEAR 2
  19. extern microbit_display_obj_t microbit_display_obj;
  20. extern const mp_obj_type_t microbit_image_type;
  21. void microbit_display_show(microbit_display_obj_t *display, microbit_image_obj_t *image);
  22. void microbit_display_animate(microbit_display_obj_t *display, mp_obj_t iterable, mp_int_t delay, bool clear, bool wait);
  23. void microbit_display_scroll(microbit_display_obj_t *display, const char* str, bool wait);
  24. mp_int_t microbit_display_get_pixel(microbit_display_obj_t *display, mp_int_t x, mp_int_t y);
  25. void microbit_display_set_pixel(microbit_display_obj_t *display, mp_int_t x, mp_int_t y, mp_int_t val);
  26. void microbit_display_clear(void);
  27. void microbit_display_init(void);
  28. void microbit_display_tick(void);
  29. bool microbit_display_active_animation(void);
  30. #endif // __MICROPY_INCLUDED_MICROBIT_DISPLAY_H__