-
Notifications
You must be signed in to change notification settings - Fork 5
/
Display_5110.h
99 lines (67 loc) · 2.57 KB
/
Display_5110.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
//Display_5110.h
/*
*******************************************************************************************************************************
Easy Build Tracker Programs for Arduino
Copyright of the author Stuart Robinson - 2/10/17
These programs may be used free of charge for personal, recreational and educational purposes only.
This program, or parts of it, may not be used for or in connection with any commercial purpose without the explicit permission
of the author Stuart Robinson.
The programs are supplied as is, it is up to individual to decide if the programs are suitable for the intended purpose and
free from errors.
This program creates a standard set of functions to use with the Nokia 5110 display. There are similar programs for other
displays. This allows for different displays to be used without needing chnages to the main programs.
This program is for a directly connected Nokia %110 display.
To Do:
*******************************************************************************************************************************
*/
#define Using_Display_5110
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
Adafruit_PCD8544 disp = Adafruit_PCD8544(DISP_DC, DISP_CS, DISP_RESET);
byte currentsize = 1; //used to keep track of current text size 1 or 2
void Display_Update()
{
//update screen from buffer
disp.display();
}
void Display_Clear()
{
disp.clearDisplay();
Display_Update();
}
void Display_SetContrast(byte contrast)
{
disp.setContrast(contrast5110);
}
void Display_SetTextSize(byte textsize)
{
currentsize = textsize;
disp.setTextSize(textsize);
}
void Display_Char(char character)
{
disp.write(character);
}
void Display_SetCurPos(byte col, byte row)
{
if (currentsize == 1) //test for the font size currently in use
{
col = col * 6; //Calculate the column position
row = (row * 8); //Calculate the row position
}
if (currentsize == 2)
{
col = col * 12; //Calculate the column position
row = (row * 16); //Calculate the row position
}
disp.setCursor(col, row); //done the conversion so position the cursor
}
void Display_Setup()
{
disp.begin(); //Start the display
disp.setContrast(contrast5110); //Set default contrast, this is a compromise, most LCDs should have a visible display
disp.setTextSize(1); //Set text size, equivalent to font 6 on Digole
disp.setTextColor(BLACK);
disp.clearDisplay();
disp.display();
}