AberLED shield library
Library for the bicolor LED (and TFT screen) shield used in CS12020
Main Page
Classes
Files
File List
File Members
src
main.cpp
Go to the documentation of this file.
1
#include <
AberLED.h
>
2
3
void
setup
(){
4
AberLED
.
begin
();
5
}
6
7
uint16_t
getPixels
(byte image,
int
colour){
8
uint16_t pixels = 0;
9
for
(
int
i = 0; i < 4; i++){
10
if
(image & (1 << (4-i))) {
11
pixels |= (colour << (i * 2));
12
}
13
}
14
return
pixels;
15
}
16
17
void
renderDigit
(
bool
topdigit,
int
digit,
int
col){
18
uint16_t *buffer =
AberLED
.
getBuffer
();
19
int
shift = topdigit ? 0 : 8;
20
buffer++;
// start at row 1
21
switch
(digit){
22
case
1:
23
*buffer++ |=
getPixels
(0b1100, col) << shift;
24
*buffer++ |=
getPixels
(0b0100, col) << shift;
25
*buffer++ |=
getPixels
(0b0100, col) << shift;
26
*buffer++ |=
getPixels
(0b0100, col) << shift;
27
*buffer++ |=
getPixels
(0b0100, col) << shift;
28
*buffer++ |=
getPixels
(0b1110, col) << shift;
29
break
;
30
case
2:
31
*buffer++ |=
getPixels
(0b1110, col) << shift;
32
*buffer++ |=
getPixels
(0b0010, col) << shift;
33
*buffer++ |=
getPixels
(0b0010, col) << shift;
34
*buffer++ |=
getPixels
(0b1110, col) << shift;
35
*buffer++ |=
getPixels
(0b1000, col) << shift;
36
*buffer++ |=
getPixels
(0b1110, col) << shift;
37
break
;
38
case
3:
39
*buffer++ |=
getPixels
(0b1110, col) << shift;
40
*buffer++ |=
getPixels
(0b0010, col) << shift;
41
*buffer++ |=
getPixels
(0b0010, col) << shift;
42
*buffer++ |=
getPixels
(0b1110, col) << shift;
43
*buffer++ |=
getPixels
(0b0010, col) << shift;
44
*buffer++ |=
getPixels
(0b1110, col) << shift;
45
break
;
46
case
4:
47
*buffer++ |=
getPixels
(0b1010, col) << shift;
48
*buffer++ |=
getPixels
(0b1010, col) << shift;
49
*buffer++ |=
getPixels
(0b1110, col) << shift;
50
*buffer++ |=
getPixels
(0b0010, col) << shift;
51
*buffer++ |=
getPixels
(0b0010, col) << shift;
52
*buffer++ |=
getPixels
(0b0010, col) << shift;
53
break
;
54
case
5:
55
*buffer++ |=
getPixels
(0b1110, col) << shift;
56
*buffer++ |=
getPixels
(0b1000, col) << shift;
57
*buffer++ |=
getPixels
(0b1110, col) << shift;
58
*buffer++ |=
getPixels
(0b0010, col) << shift;
59
*buffer++ |=
getPixels
(0b0010, col) << shift;
60
*buffer++ |=
getPixels
(0b1110, col) << shift;
61
break
;
62
case
6:
63
*buffer++ |=
getPixels
(0b1110, col) << shift;
64
*buffer++ |=
getPixels
(0b1000, col) << shift;
65
*buffer++ |=
getPixels
(0b1110, col) << shift;
66
*buffer++ |=
getPixels
(0b1010, col) << shift;
67
*buffer++ |=
getPixels
(0b1010, col) << shift;
68
*buffer++ |=
getPixels
(0b1110, col) << shift;
69
break
;
70
case
7:
71
*buffer++ |=
getPixels
(0b1110, col) << shift;
72
*buffer++ |=
getPixels
(0b0010, col) << shift;
73
*buffer++ |=
getPixels
(0b0010, col) << shift;
74
*buffer++ |=
getPixels
(0b0010, col) << shift;
75
*buffer++ |=
getPixels
(0b0010, col) << shift;
76
*buffer++ |=
getPixels
(0b0010, col) << shift;
77
break
;
78
case
8:
79
*buffer++ |=
getPixels
(0b1110, col) << shift;
80
*buffer++ |=
getPixels
(0b1010, col) << shift;
81
*buffer++ |=
getPixels
(0b1110, col) << shift;
82
*buffer++ |=
getPixels
(0b1010, col) << shift;
83
*buffer++ |=
getPixels
(0b1010, col) << shift;
84
*buffer++ |=
getPixels
(0b1110, col) << shift;
85
break
;
86
case
9:
87
*buffer++ |=
getPixels
(0b1110, col) << shift;
88
*buffer++ |=
getPixels
(0b1010, col) << shift;
89
*buffer++ |=
getPixels
(0b1110, col) << shift;
90
*buffer++ |=
getPixels
(0b0010, col) << shift;
91
*buffer++ |=
getPixels
(0b0010, col) << shift;
92
*buffer++ |=
getPixels
(0b1110, col) << shift;
93
break
;
94
case
0:
95
*buffer++ |=
getPixels
(0b1110, col) << shift;
96
*buffer++ |=
getPixels
(0b1010, col) << shift;
97
*buffer++ |=
getPixels
(0b1010, col) << shift;
98
*buffer++ |=
getPixels
(0b1010, col) << shift;
99
*buffer++ |=
getPixels
(0b1010, col) << shift;
100
*buffer++ |=
getPixels
(0b1110, col) << shift;
101
break
;
102
default
:
break
;
103
}
104
}
105
106
107
int
v
= 0;
108
109
void
loop
(){
110
AberLED
.
clear
();
111
renderDigit
(
true
,
v
/10,
GREEN
);
112
renderDigit
(
false
,
v
%10,
RED
);
113
delay(100);
114
v
++;
115
v
%=100;
116
117
118
AberLED
.
swap
();
119
}
AberLEDClass::clear
void clear()
Set all pixels in the back buffer to black.
Definition:
AberLED.cpp:376
AberLEDClass::begin
void begin(AberLEDFlags flags=AF_TFTDISPLAY, uint8_t *colourMap=NULL)
Initialises all pin modes, clears the buffers, starts the interrupt and begins to output data to the ...
Definition:
AberLED.cpp:158
loop
void loop()
Definition:
main.cpp:109
setup
void setup()
Definition:
main.cpp:3
AberLED
AberLEDClass AberLED
this is the single instance of the LED class - for documentation see AberLEDClass.
Definition:
AberLED.cpp:76
AberLED.h
The declaration for the AberLED class. Many implementation details are inside the AberLED implementat...
v
int v
Definition:
main.cpp:107
renderDigit
void renderDigit(bool topdigit, int digit, int col)
Definition:
main.cpp:17
GREEN
#define GREEN
the green colour for pixels, used in set()
Definition:
AberLED.h:23
RED
#define RED
the red colour for pixels, used in set()
Definition:
AberLED.h:25
AberLEDClass::getBuffer
uint16_t * getBuffer()
Call this to write to the back buffer directly. It returns a pointer to the buffer: a set of 8 16-bit...
Definition:
AberLED.cpp:354
getPixels
uint16_t getPixels(byte image, int colour)
Definition:
main.cpp:7
AberLEDClass::swap
void swap()
Call this code to finish drawing operations. It swaps the back and front buffer, so that the newly wr...
Definition:
AberLED.cpp:259
Generated on Tue Nov 4 2025 18:56:34 for AberLED shield library by
1.8.11