27 #include "LedMatrix.h" 28 #include "ModulatingDigitDriver.h" 33 DimmingDigit& dimmingDigit = mDimmingDigits[mCurrentDigit];
34 uint8_t brightness = dimmingDigit.brightness;
35 if (mCurrentDigit != mPrevDigit) {
36 mLedMatrix->disableGroup(mPrevDigit);
37 mIsCurrentDigitOn =
false;
38 mCurrentSubFieldMax = ((uint16_t) mNumSubFields * brightness) / 256;
44 if (brightness < 255 && mCurrentSubField >= mCurrentSubFieldMax) {
46 if (mIsCurrentDigitOn) {
47 mLedMatrix->disableGroup(mCurrentDigit);
48 mIsCurrentDigitOn =
false;
52 if (!mIsCurrentDigitOn) {
54 if (segmentPattern != mSegmentPattern) {
55 mLedMatrix->drawElements(segmentPattern);
56 mSegmentPattern = segmentPattern;
58 mLedMatrix->enableGroup(mCurrentDigit);
59 mIsCurrentDigitOn =
true;
64 mPrevDigit = mCurrentDigit;
65 if (mCurrentSubField >= mNumSubFields) {
uint8_t SegmentPatternType
Integer type used to store the segment bit patterns of a single digit.
static void incrementMod(T &i, T m)
Increment i modulo m, avoiding expensive % operator on some 8-bit processors like AVR...
virtual void displayCurrentField() override
Display the current field of the frame.