sd1306.h 913 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef _SD1306_H_
  2. #define _SD1306_H_
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include "pico/stdlib.h"
  7. #define OLED_HEIGHT _u(32)
  8. #define OLED_WIDTH _u(128)
  9. #define OLED_PAGE_HEIGHT _u(8)
  10. #define OLED_NUM_PAGES OLED_HEIGHT / OLED_PAGE_HEIGHT
  11. #define OLED_BUF_LEN (OLED_NUM_PAGES * OLED_WIDTH)
  12. struct render_area {
  13. uint8_t start_col;
  14. uint8_t end_col;
  15. uint8_t start_page;
  16. uint8_t end_page;
  17. int buflen;
  18. };
  19. void fill(uint8_t buf[], uint8_t fill);
  20. void fill_page(uint8_t *buf, uint8_t fill, uint8_t page);
  21. void print_buf_page(uint8_t buf[], uint8_t page);
  22. void print_buf_pages(uint8_t buf[]);
  23. void print_buf_area(uint8_t *buf, struct render_area *area);
  24. void calc_render_area_buflen(struct render_area *area);
  25. void oled_send_cmd(uint8_t cmd);
  26. void oled_send_buf(uint8_t buf[], int buflen);
  27. void oled_init(void);
  28. void render(uint8_t *buf, struct render_area *area);
  29. #endif