aboutsummaryrefslogtreecommitdiff
path: root/src/display.h
blob: 254c4f6614f90b964acc4fc203d8d356dd279172 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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