8x8 Led Matrix Library 1.0.0
This is a library for the 8x8 Led Matrix by Soldered
Loading...
Searching...
No Matches
MD_EyePair.h
Go to the documentation of this file.
1// Implements a class to draw and animate a pair of eyes
2#pragma once
3
5
6// Misc defines
7#define EYEBALL_ROWS 8 // number of rows in the eyeball definition
8#define RANDOM_SEED_PORT A0 // for random seed bit shuffling
9
11{
12 public:
14 ~MD_EyePair(void){};
15
16 void begin(uint8_t startdev, Led_Matrix *M, uint16_t maxDelay);
17 void animate(void);
18
19 protected:
20 // Pupil related information
21 enum posPupil_t // Initials are for Top, Middle and Bottom; Left, Center and Right (eg, TL = Top Left)
22 {
23 P_TL = 0,
24 P_TC = 1,
25 P_TR = 2,
26 P_ML = 3,
27 P_MC = 4,
28 P_MR = 5,
29 P_BL = 6,
30 P_BC = 7,
31 P_BR = 8
32 };
33
34 // Class static data
35 static uint8_t _pupilData[];
36 static uint8_t _eyeballData[];
37
38 // display parameters
40 uint8_t _sd; // start device
41 uint8_t _ed; // end device
42
43 // blinking parameters
45 uint16_t _currentDelay;
46 uint8_t _blinkState;
47 uint8_t _savedEyeball[EYEBALL_ROWS];
48 uint8_t _blinkLine;
49
50 // animation parameters
51 posPupil_t _pupilCurPos; // the current position for the pupil
52 uint32_t _timeLast;
53 uint16_t _timeDelay;
54 uint16_t _maxDelay;
56
57 // methods
58 void drawEyeball(void);
59 bool blinkEyeball(bool bFirst);
60 void drawPupil(posPupil_t posOld, posPupil_t posNew);
61 bool posIsAdjacent(posPupil_t posCur, posPupil_t posNew);
62
63 // random seed creation
64 uint16_t bitOut(uint8_t port);
65 uint32_t seedOut(uint16_t noOfBits, uint8_t port);
66};
Definition Led-Matrix-SOLDERED.h:19
Definition MD_EyePair.h:11
uint8_t _blinkState
Definition MD_EyePair.h:46
uint32_t seedOut(uint16_t noOfBits, uint8_t port)
Definition MD_EyePair.cpp:66
uint8_t _ed
Definition MD_EyePair.h:41
MD_EyePair(void)
Definition MD_EyePair.cpp:78
uint16_t _currentDelay
Definition MD_EyePair.h:45
uint16_t _timeDelay
Definition MD_EyePair.h:53
void animate(void)
Definition MD_EyePair.cpp:226
uint16_t _maxDelay
Definition MD_EyePair.h:54
uint8_t _savedEyeball[EYEBALL_ROWS]
Definition MD_EyePair.h:47
bool blinkEyeball(bool bFirst)
Definition MD_EyePair.cpp:98
uint16_t bitOut(uint8_t port)
Definition MD_EyePair.cpp:38
void begin(uint8_t startdev, Led_Matrix *M, uint16_t maxDelay)
Definition MD_EyePair.cpp:212
posPupil_t
Definition MD_EyePair.h:22
@ P_TC
Definition MD_EyePair.h:24
@ P_MC
Definition MD_EyePair.h:27
@ P_ML
Definition MD_EyePair.h:26
@ P_MR
Definition MD_EyePair.h:28
@ P_BR
Definition MD_EyePair.h:31
@ P_TR
Definition MD_EyePair.h:25
@ P_TL
Definition MD_EyePair.h:23
@ P_BC
Definition MD_EyePair.h:30
@ P_BL
Definition MD_EyePair.h:29
Led_Matrix * _M
Definition MD_EyePair.h:39
uint32_t _timeLast
Definition MD_EyePair.h:52
uint8_t _blinkLine
Definition MD_EyePair.h:48
void drawPupil(posPupil_t posOld, posPupil_t posNew)
Definition MD_EyePair.cpp:153
posPupil_t _pupilCurPos
Definition MD_EyePair.h:51
~MD_EyePair(void)
Definition MD_EyePair.h:14
void drawEyeball(void)
Definition MD_EyePair.cpp:85
static uint8_t _eyeballData[]
Definition MD_EyePair.h:20
bool posIsAdjacent(posPupil_t posCur, posPupil_t posNew)
Definition MD_EyePair.cpp:181
uint32_t _lastBlinkTime
Definition MD_EyePair.h:44
uint8_t _sd
Definition MD_EyePair.h:40
bool _inBlinkCycle
Definition MD_EyePair.h:55
static uint8_t _pupilData[]
Definition MD_EyePair.h:13