1 | #ifndef S1D13700_h
|
2 | #define S1D13700_h
|
3 | #include "Arduino.h"
|
4 |
|
5 | //#define S1D13700_CUSTOM_DATA_PINS
|
6 |
|
7 | #define FIXED_DIR DDRD
|
8 | #define FIXED_PORT PORTD
|
9 | #define FIXED_PIN PIND
|
10 |
|
11 | class S1D13700
|
12 | {
|
13 | public:
|
14 | S1D13700(void);
|
15 | void writeCommand(unsigned char command);
|
16 | void writeData(unsigned char data);
|
17 | unsigned char readData(void);
|
18 | void initLCD(void);
|
19 |
|
20 | void writeText(char * text);
|
21 | void setPixel(unsigned int x,unsigned int y, unsigned char state);
|
22 | void setCursorAddress(unsigned int address);
|
23 | void textGoTo(unsigned char x, unsigned char y);
|
24 | void graphicGoTo(unsigned int x, unsigned int y);
|
25 | void clearText(void);
|
26 | void clearGraphic(void);
|
27 |
|
28 | void drawBox(int x0, int y0, int x1, int y1);
|
29 | void drawCircle(int x0, int y0, int radius);
|
30 | void drawLine(int x0, int y0, int x1, int y1);
|
31 |
|
32 | struct pin_type {
|
33 | unsigned char d0;
|
34 | unsigned char d1;
|
35 | unsigned char d2;
|
36 | unsigned char d3;
|
37 | unsigned char d4;
|
38 | unsigned char d5;
|
39 | unsigned char d6;
|
40 | unsigned char d7;
|
41 | unsigned char a0;
|
42 | unsigned char wr;
|
43 | unsigned char rd;
|
44 | unsigned char cs;
|
45 | unsigned char rst;
|
46 | } pins;
|
47 |
|
48 |
|
49 |
|
50 | private:
|
51 | void hardReset(void);
|
52 | };
|
53 |
|
54 | #define READDELAY() asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop")
|
55 |
|
56 | /*definitions for specific LCD settings as well as the
|
57 | command codes for various function */
|
58 |
|
59 | #define S1D13700_SYSTEM_SET 0x40
|
60 | #define S1D13700_SLEEP_IN 0x53
|
61 | #define S1D13700_DISP_OFF 0x58
|
62 | #define S1D13700_DISP_ON 0x59
|
63 | #define S1D13700_SCROLL 0x44
|
64 | #define S1D13700_CSRFORM 0x5d
|
65 | #define S1D13700_CGRAM_ADR 0x5c
|
66 | #define S1D13700_CSRDIR_U 0x4e
|
67 | #define S1D13700_CSRDIR_D 0x4f
|
68 | #define S1D13700_CSRDIR_L 0x4d
|
69 | #define S1D13700_CSRDIR_R 0x4c
|
70 | #define S1D13700_HDOT_SCR 0x5a
|
71 | #define S1D13700_OVLAY 0x5b
|
72 | #define S1D13700_CSRW 0x46
|
73 | #define S1D13700_CSRR 0x47
|
74 | #define S1D13700_MWRITE 0x42
|
75 | #define S1D13700_MREAD 0x43
|
76 | #define S1D13700_SCR_WIDTH 340
|
77 | #define S1D13700_M0 0
|
78 | #define S1D13700_M1 0
|
79 | #define S1D13700_M2 0
|
80 | #define S1D13700_WS 0
|
81 | #define S1D13700_IV 1
|
82 | #define S1D13700_FX 7
|
83 | #define S1D13700_FY 7
|
84 | #define S1D13700_WF 1
|
85 | #define S1D13700_CR 39
|
86 | #define S1D13700_TCR 90
|
87 | #define S1D13700_LF 239
|
88 | #define S1D13700_APL 40
|
89 | #define S1D13700_APH 0
|
90 | #define S1D13700_LINES 30
|
91 | #define S1D13700_SAD1L 0
|
92 | #define S1D13700_SAD1H 0
|
93 | #define S1D13700_SL1 0xEF
|
94 | #define S1D13700_SAD2L 0xB0
|
95 | #define S1D13700_SAD2H 0x04
|
96 | #define S1D13700_SL2 0xEF
|
97 | #define S1D13700_SAD3L 0
|
98 | #define S1D13700_SAD3H 0
|
99 | #define S1D13700_SAD4L 0
|
100 | #define S1D13700_SAD4H 0
|
101 | #define S1D13700_CRX 0x04
|
102 | #define S1D13700_CRY 0x07
|
103 | #define S1D13700_CM 0
|
104 | #define S1D13700_MX0 1
|
105 | #define S1D13700_MX1 0
|
106 | #define S1D13700_DM1 0
|
107 | #define S1D13700_DM2 0
|
108 | #define S1D13700_OV 0
|
109 | #define S1D13700_SAGL 0
|
110 | #define S1D13700_SAGH 0x70
|
111 | #define S1D13700_SCRD 0
|
112 | #define S1D13700_FLASH 0x16
|
113 | #define S1D13700_TEXTSIZE ((S1D13700_SAD2H << 8) + S1D13700_SAD2L)
|
114 | #define S1D13700_GRAPHICSTART ((S1D13700_SAD2H << 8) + S1D13700_SAD2L)
|
115 | #define S1D13700_GRAPHICSIZE ((S1D13700_SL2+1) * (S1D13700_SCR_WIDTH+1))>>3
|
116 | #define S1D13700_MEM_END 10800
|
117 | #define S1D13700_SYS_P1 0x10 | (S1D13700_IV << 5) | (S1D13700_WS << 3) | (S1D13700_M2 << 2) | (S1D13700_M1 << 1) | S1D13700_M0
|
118 | #define S1D13700_SYS_P2 0x00 | (S1D13700_WF << 7) | S1D13700_FX
|
119 | #define S1D13700_CSRF_P2 0x00 | (S1D13700_CM << 7) | S1D13700_CRY
|
120 | #define S1D13700_OVLAY_P1 0x00 | (S1D13700_OV << 4) | (S1D13700_DM2 << 3) | (S1D13700_DM1 << 2) | (S1D13700_MX1 << 1) | S1D13700_MX0
|
121 |
|
122 | #endif
|