#ifndef _SD1306_H_ #define _SD1306_H_ #include #include #include #include "pico/stdlib.h" #define OLED_HEIGHT _u(32) #define OLED_WIDTH _u(128) #define OLED_PAGE_HEIGHT _u(8) #define OLED_NUM_PAGES OLED_HEIGHT / OLED_PAGE_HEIGHT #define OLED_BUF_LEN (OLED_NUM_PAGES * OLED_WIDTH) struct render_area { uint8_t start_col; uint8_t end_col; uint8_t start_page; uint8_t end_page; int buflen; }; void fill(uint8_t buf[], uint8_t fill); void fill_page(uint8_t *buf, uint8_t fill, uint8_t page); void print_buf_page(uint8_t buf[], uint8_t page); void print_buf_pages(uint8_t buf[]); void print_buf_area(uint8_t *buf, struct render_area *area); void calc_render_area_buflen(struct render_area *area); void oled_send_cmd(uint8_t cmd); void oled_send_buf(uint8_t buf[], int buflen); void oled_init(void); void render(uint8_t *buf, struct render_area *area); #endif