-
Notifications
You must be signed in to change notification settings - Fork 6
/
SeeedOLED.h
109 lines (77 loc) · 2.8 KB
/
SeeedOLED.h
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
SeeedOLED.h - SSD130x OLED Driver Library
2011 Copyright (c) Seeed Technology Inc. All right reserved.
Author: Visweswara R
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef SeeedOLED_data_H
#define SeeedOLED_data_H
// SeeedOLED Instruction set addresses
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include <WProgram.h>
#include "i2c_t3.h"
#endif
#define SeeedOLED_Max_X 127 //128 Pixels
#define SeeedOLED_Max_Y 63 //64 Pixels
#define PAGE_MODE 01
#define HORIZONTAL_MODE 02
#define SeeedOLED_Address 0x3c
#define SeeedOLED_Command_Mode 0x80
#define SeeedOLED_Data_Mode 0x40
#define SeeedOLED_Display_Off_Cmd 0xAE
#define SeeedOLED_Display_On_Cmd 0xAF
#define SeeedOLED_Normal_Display_Cmd 0xA6
#define SeeedOLED_Inverse_Display_Cmd 0xA7
#define SeeedOLED_Activate_Scroll_Cmd 0x2F
#define SeeedOLED_Dectivate_Scroll_Cmd 0x2E
#define SeeedOLED_Set_Brightness_Cmd 0x81
#define Scroll_Left 0x00
#define Scroll_Right 0x01
#define Scroll_2Frames 0x7
#define Scroll_3Frames 0x4
#define Scroll_4Frames 0x5
#define Scroll_5Frames 0x0
#define Scroll_25Frames 0x6
#define Scroll_64Frames 0x1
#define Scroll_128Frames 0x2
#define Scroll_256Frames 0x3
class SeeedOLED {
public:
char addressingMode;
void init(void);
void setNormalDisplay();
void setInverseDisplay();
void sendCommand(unsigned char command);
void sendData(unsigned char Data);
void setPageMode();
void setHorizontalMode();
void setTextXY(unsigned char Row, unsigned char Column);
void clearDisplay();
void setBrightness(unsigned char Brightness);
void putChar(unsigned char c);
void putCharLine(unsigned char c,unsigned char i);
void putString(const char *String);
unsigned char putNumber(long n);
unsigned char putFloat(float floatNumber,unsigned char decimal);
unsigned char putFloat(float floatNumber);
void drawBitmap(unsigned char *bitmaparray,int bytes);
void setHorizontalScrollProperties(bool direction,unsigned char startPage, unsigned char endPage, unsigned char scrollSpeed);
void activateScroll();
void deactivateScroll();
void displayOff();
void displayOn();
};
extern SeeedOLED SeeedOled; // SeeedOLED object
#endif