|
@@ -94,8 +94,90 @@ const PROGMEM byte Digit[10][5] = {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+const PROGMEM byte AcceleratorLevel[10][6] = {
|
|
|
+ {
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000001,
|
|
|
+ B00000001,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000011,
|
|
|
+ B00000011,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000010,
|
|
|
+ B00000111,
|
|
|
+ B00000011,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B00000100,
|
|
|
+ B00000110,
|
|
|
+ B00000111,
|
|
|
+ B00000011,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B00001100,
|
|
|
+ B00001110,
|
|
|
+ B00000111,
|
|
|
+ B00000011,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B00011100,
|
|
|
+ B00011110,
|
|
|
+ B00000111,
|
|
|
+ B00000011,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B00111100,
|
|
|
+ B00111110,
|
|
|
+ B00000111,
|
|
|
+ B00000011,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B01111100,
|
|
|
+ B01111110,
|
|
|
+ B00000111,
|
|
|
+ B00000011,
|
|
|
+ B00000001
|
|
|
+ },{
|
|
|
+ B00000000,
|
|
|
+ B11111100,
|
|
|
+ B11111110,
|
|
|
+ B00000111,
|
|
|
+ B00000011,
|
|
|
+ B00000001
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
Display::Display() : mLedControl(DisplayDataPin, DisplayClkPin, DisplayCsPin,2)
|
|
|
,mDisplayBuffer{
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
+ B00000000,
|
|
|
B00000000,
|
|
|
B00000000,
|
|
|
B00000000,
|
|
@@ -114,6 +196,22 @@ Display::Display() : mLedControl(DisplayDataPin, DisplayClkPin, DisplayCsPin,2)
|
|
|
mLedControl.clearDisplay(1);
|
|
|
}
|
|
|
|
|
|
+void Display::drawAccelerationLevel(unsigned char level)
|
|
|
+{
|
|
|
+ if (level > 10) {
|
|
|
+ level = 10;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (int i = 0; i < 6; i++) {
|
|
|
+ mDisplayBuffer[8 + i] = 0;
|
|
|
+ if (level > 0) {
|
|
|
+ byte value = pgm_read_byte(&(AcceleratorLevel[level - 1][i]));
|
|
|
+ mDisplayBuffer[8 + i] = value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
void Display::drawSpeed(unsigned char number)
|
|
|
{
|
|
|
if (number > 99) {
|
|
@@ -126,7 +224,7 @@ void Display::drawSpeed(unsigned char number)
|
|
|
mDisplayBuffer[i] = 0;
|
|
|
byte tensDigit = pgm_read_byte(&(Digit[tens][i]));
|
|
|
byte onesDigit = pgm_read_byte(&(Digit[ones][i]));
|
|
|
- mDisplayBuffer[i] |= (tensDigit | onesDigit << 4);
|
|
|
+ mDisplayBuffer[i] = (tensDigit | onesDigit << 4);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -151,4 +249,9 @@ void Display::updateDisplayBuffer()
|
|
|
for(int i = 0; i < 8; i++) {
|
|
|
mLedControl.setColumn(1, i, mDisplayBuffer[i]);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ for(int i = 0; i < 8; i++) {
|
|
|
+ mLedControl.setColumn(0, i, mDisplayBuffer[i + 8]);
|
|
|
+ }
|
|
|
}
|