blob: af1d3eef8fb3371395ba56684dc8fa145ba70057 (
plain)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#include <stdint.h>
#define STM32F1
#include <libopencm3/stm32/gpio.h>
#ifndef ili9341
#define ili9341
#define PALET_16BIT
#define SCREEN_HEIGHT 240
#define SCREEN_WIDTH 320
#define SPI_ADDR SPI1
#define ILI9341_DC GPIO2
#define ILI9341_RES GPIO3
#define ILI9341_CS GPIO1
#define ILI9341_CLK GPIO5
#define ILI9341_MISO GPIO6
#define ILI9341_MOSI GPIO7
// Init comands
#define ILI9341_SOFTRESET 0x01
#define ILI9341_POWERCONTROL_A 0xCB
#define ILI9341_POWERCONTROL_B 0xCF
#define ILI9341_DRIVER_TIMINGS_A 0xE8
#define ILI9341_DRIVER_TIMINGS_B 0xEA
#define ILI9341_POS_CONTROL 0xEA
#define ILI9341_PUMP_RATIO_CONTROL 0xF7
#define ILI9341_POWERCONTROL1 0xC0
#define ILI9341_POWERCONTROL2 0xC1
#define ILI9341_VCOM_CONTROL1 0xC5
#define ILI9341_VCOM_CONTROL2 0xC7
#define ILI9341_MEM_ACCESS_CONTROL 0x36
#define ILI9341_PIXEL_FORMAT_CONTROL 0x3A
#define ILI9341_FRAME_RATIO_CONTROL 0xB1
#define ILI9341_DISPLAY_RATIO_CONTROL 0xB6
#define ILI9341_3G_SETUP 0xF2
#define ILI9341_GAMMA_CURVE_SELECTED 0x26
#define ILI9341_SET_POS_GAMMA 0x0F
#define ILI9341_SET_NEG_GAMMA 0xE1
#define ILI9341_DISPLAYOFF 0x28
#define ILI9341_PIXELFORMAT 0x3A
#define ILI9341_MEMCONTROL 0x36
#define ILI9341_SLEEPOUT 0x11
#define ILI9341_DISPLAYON 0x29
#define ILI9341_SET_COLUMN 0x2A
#define ILI9341_SET_ROW 0x2B
#define ILI9341_WRITE_TO_RAM 0x2C
#define ILI9341_PIXEL_FORMAT_16BIT 0x55
// Sets up GPIO for peripherals
void ILI_SetupGPIO(void);
// Starts up an initialization sequence
void ILI_Setup(void);
// Hard resets the screen
void ILI_hard_reset(void);
// Sends a comand to display
void ILI_sendComand(uint8_t cmd);
// Writes a bit to SPI
void ILI_sendData(uint8_t data);
// Set position to write to
void ILI_setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);
#endif // ili9341
// Performs a goven amount of NOPs
void delayCycles(uint32_t nops);
|