aboutsummaryrefslogtreecommitdiff
path: root/src/display.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/display.h')
-rw-r--r--src/display.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/display.h b/src/display.h
new file mode 100644
index 0000000..254c4f6
--- /dev/null
+++ b/src/display.h
@@ -0,0 +1,45 @@
+#ifndef _MODULE_DISPLAY_H
+#define _MODULE_DISPLAY_H
+
+#include <stdint.h>
+
+// 0x3C << 1
+#define OLED_ADDR 0x78
+
+#define DISPLAY_SDA PA6
+#define DISPLAY_SCL PA4
+
+#define I2C_DELAY_US 5
+
+#define DCMD_DISPLAY_ON 0xAF
+#define DCMD_DISPLAY_OFF 0xAE
+#define DCMD_SET_CLOCK_DIV 0xD5
+#define DCMD_SET_MUX_RATIO 0xA8
+#define DCMD_SET_OFFSET 0xD3
+#define DCMD_SET_START_LINE 0x40
+#define DCMD_SET_CHARGE_PUMP 0x8D
+#define DCMD_CHARGE_PUMP_ENABLE 0x14
+#define DCMD_SET_ADDRESSING_MODE 0x20
+#define DCMD_ADDR_HORIZONTAL 0x00
+#define DCMD_SET_SEGMENT_REMAP 0xA1
+#define DCMD_SET_COM_SCAN_DIRECTION 0xC8
+#define DCMD_SET_COM_PINS 0xDA
+#define DCMD_SET_CONTRAST 0x81
+#define DCMD_SET_PRECHARGE_PERIOD 0xD9
+#define DCMD_SET_VCOMH_DESELECT 0xDB
+#define DCMD_OUTPUT_FOLLOWS_RAM 0xA4
+#define DCMD_NORMAL_MODE 0xA6
+#define DCMD_INVERSE_MODE 0xA7
+#define DCMD_SET_PAGE_START 0xB0
+#define DCMD_SET_START_ADDR_HIGHER_COL 0x10
+
+extern uint8_t cursor_y;
+extern uint8_t cursor_x;
+
+void display_init(void);
+
+void display_draw_char(uint8_t c);
+
+void display_draw_float2(float num);
+
+#endif