|
|
@@ -1,37 +1,29 @@
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
-///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
-
|
|
|
-
|
|
|
- void showNumber(float value)
|
|
|
+void showNumber(float value)
|
|
|
{
|
|
|
|
|
|
-// changed from int to float
|
|
|
+ // changed from int to float
|
|
|
long numberX = ((value+.0005)*1000); //Remove negative signs and any decimals
|
|
|
|
|
|
-// Serial.print("number: ");
|
|
|
-// Serial.println(numberX,3);
|
|
|
-// Serial.print("mph: ");
|
|
|
-// Serial.println(mph,3);
|
|
|
+ // Serial.print("number: ");
|
|
|
+ // Serial.println(numberX,3);
|
|
|
+ // Serial.print("mph: ");
|
|
|
+ // Serial.println(mph,3);
|
|
|
for (byte x = 0 ; x < 6 ; x++)
|
|
|
{
|
|
|
-long remainder = numberX % 10;
|
|
|
+ long remainder = numberX % 10;
|
|
|
|
|
|
- postNumber(remainder, x==3);
|
|
|
+ postNumber(remainder, x==3);
|
|
|
|
|
|
-//Serial.print("remainder: ");
|
|
|
-//Serial.println (remainder,4);
|
|
|
-//Serial.print("value: ");
|
|
|
-//Serial.println (value,3);
|
|
|
-//Serial.print("number: ");
|
|
|
-// Serial.println(number );
|
|
|
- numberX /= 10;
|
|
|
+ //Serial.print("remainder: ");
|
|
|
+ //Serial.println (remainder,4);
|
|
|
+ //Serial.print("value: ");
|
|
|
+ //Serial.println (value,3);
|
|
|
+ //Serial.print("number: ");
|
|
|
+ // Serial.println(number );
|
|
|
+ numberX /= 10;
|
|
|
|
|
|
-// Serial.print("number: ");
|
|
|
-// Serial.println(numberX,3 );
|
|
|
+ // Serial.print("number: ");
|
|
|
+ // Serial.println(numberX,3 );
|
|
|
}
|
|
|
|
|
|
//Latch the current segment data
|
|
|
@@ -39,388 +31,3 @@ long remainder = numberX % 10;
|
|
|
digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
}
|
|
|
|
|
|
-//Given a number, or '-', shifts it out to the display
|
|
|
-void postNumber(int number, boolean decimal)
|
|
|
-{
|
|
|
- // - A
|
|
|
- // / / F/B
|
|
|
- // - G
|
|
|
- // / / E/C
|
|
|
- // -. D/DP
|
|
|
-
|
|
|
-#define a 1<<0
|
|
|
-#define b 1<<6
|
|
|
-#define c 1<<5
|
|
|
-#define d 1<<4
|
|
|
-#define e 1<<3
|
|
|
-#define f 1<<1
|
|
|
-#define g 1<<2
|
|
|
-#define dp 1<<7
|
|
|
-
|
|
|
- byte segments;
|
|
|
-
|
|
|
- switch (number)
|
|
|
- {
|
|
|
- case 1: segments = b | c; break;
|
|
|
- case 2: segments = a | b | d | e | g; break;
|
|
|
- case 3: segments = a | b | c | d | g; break;
|
|
|
- case 4: segments = f | g | b | c; break;
|
|
|
- case 5: segments = a | f | g | c | d; break;
|
|
|
- case 6: segments = a | f | g | e | c | d; break;
|
|
|
- case 7: segments = a | b | c; break;
|
|
|
- case 8: segments = a | b | c | d | e | f | g; break;
|
|
|
- case 9: segments = a | b | c | d | f | g; break;
|
|
|
- // case 0:
|
|
|
- // if (number > 9) {
|
|
|
- // segments = a | b | c | d | e | f; break;
|
|
|
- // } else segments = 0; break;
|
|
|
-
|
|
|
- case 0: segments = a | b | c | d | e | f; break;
|
|
|
- case ' ': segments = 0; break;
|
|
|
- case 'c': segments = g | e | d; break;
|
|
|
- case '-': segments = g; break;
|
|
|
- }
|
|
|
-
|
|
|
- if (decimal) segments |= dp;
|
|
|
-
|
|
|
- //Clock these bits out to the drivers
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClock, LOW);
|
|
|
- digitalWrite(segmentData, segments & 1 << (7 - x));
|
|
|
- digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-void showShape(int shape)
|
|
|
-{
|
|
|
- // - A
|
|
|
- // / / F/B
|
|
|
- // - G
|
|
|
- // / / E/C
|
|
|
- // -. D/DP
|
|
|
-
|
|
|
-#define a 1<<0
|
|
|
-#define b 1<<6
|
|
|
-#define c 1<<5
|
|
|
-#define d 1<<4
|
|
|
-#define e 1<<3
|
|
|
-#define f 1<<1
|
|
|
-#define g 1<<2
|
|
|
-#define dp 1<<7
|
|
|
-
|
|
|
- byte segments1;
|
|
|
- byte segments2;
|
|
|
- byte segments3;
|
|
|
- byte segments4;
|
|
|
- byte segments5;
|
|
|
- byte segments6;
|
|
|
-
|
|
|
- switch (shape)
|
|
|
- {
|
|
|
- //
|
|
|
- case 0:
|
|
|
- segments1 = a | f | b | e | c | d;
|
|
|
- segments2 = a | f | b | e | c | d;
|
|
|
- segments3 = a | f | b | e | c | d;
|
|
|
- segments4 = a | f | b | e | c | d;
|
|
|
- segments5 = a | f | b | e | c | d;
|
|
|
- segments6 = a | f | b | e | c | d;
|
|
|
-
|
|
|
- break;
|
|
|
- // . .
|
|
|
- case 1:
|
|
|
- segments1 = dp;
|
|
|
- segments2 = dp;
|
|
|
- segments3 = dp;
|
|
|
- segments4 = dp;
|
|
|
- segments5 = dp;
|
|
|
- segments6 = dp;
|
|
|
- break;
|
|
|
- // _ _
|
|
|
- case 2:
|
|
|
- segments1 = d;
|
|
|
- segments2 = d;
|
|
|
-
|
|
|
- break;
|
|
|
- // Double 88
|
|
|
- case 3:
|
|
|
- segments1 = a | f | b | e | c | d | g;
|
|
|
- segments2 = a | f | b | e | c | d | g;
|
|
|
- break;
|
|
|
- // - -
|
|
|
- case 4:
|
|
|
- segments1 = g;
|
|
|
- segments2 = g;
|
|
|
- segments3 = g;
|
|
|
- segments4 = g;
|
|
|
- segments5 = g;
|
|
|
- segments6 = g;
|
|
|
- break;
|
|
|
- // NOTHING
|
|
|
- case 5:
|
|
|
- segments1 = 0;
|
|
|
- segments2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- //Clock these bits out to the drivers
|
|
|
- // Segment1
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClock, LOW);
|
|
|
- digitalWrite(segmentData, segments1 & 1 << (7 - x));
|
|
|
- digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(segmentLatch, LOW);
|
|
|
- digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-
|
|
|
- // Segment2
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClock, LOW);
|
|
|
- digitalWrite(segmentData, segments2 & 1 << (7 - x));
|
|
|
-
|
|
|
- digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(segmentLatch, LOW);
|
|
|
- digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-
|
|
|
-// Segment3
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClock, LOW);
|
|
|
- digitalWrite(segmentData, segments3 & 1 << (7 - x));
|
|
|
-
|
|
|
- digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(segmentLatch, LOW);
|
|
|
- digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-
|
|
|
-// Segment4
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClock, LOW);
|
|
|
- digitalWrite(segmentData, segments4 & 1 << (7 - x));
|
|
|
- digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(segmentLatch, LOW);
|
|
|
- digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-
|
|
|
- // Segment5
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClock, LOW);
|
|
|
- digitalWrite(segmentData, segments5 & 1 << (7 - x));
|
|
|
-
|
|
|
- digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(segmentLatch, LOW);
|
|
|
- digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-
|
|
|
-// Segment6
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClock, LOW);
|
|
|
- digitalWrite(segmentData, segments6 & 1 << (7 - x));
|
|
|
-
|
|
|
- digitalWrite(segmentClock, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(segmentLatch, LOW);
|
|
|
- digitalWrite(segmentLatch, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-/////////////////////////////////////////////////////////////////////////////////////
|
|
|
-/////////////////////////////////////////////////////////////////////////////////////
|
|
|
-// LAP SEGMENT CODE
|
|
|
-/////////////////////////////////////////////////////////////////////////////////////
|
|
|
-/////////////////////////////////////////////////////////////////////////////////////
|
|
|
-
|
|
|
-
|
|
|
-void showNumberLAP(float valueLAP)
|
|
|
-{
|
|
|
-
|
|
|
-// changed from int to float
|
|
|
- long numberLAP = abs(valueLAP); //Remove negative signs and any decimals
|
|
|
-
|
|
|
-// Serial.print("numberLAP: ");
|
|
|
-// Serial.println(numberLAP,3);
|
|
|
-// Serial.print("mph: ");
|
|
|
-// Serial.println(mph,3);
|
|
|
-
|
|
|
- for (byte x = 0 ; x < 2 ; x++)
|
|
|
- {
|
|
|
-long remainderLAP = numberLAP % 10;
|
|
|
-
|
|
|
- postNumberLAP(remainderLAP, false);
|
|
|
-
|
|
|
-//Serial.print("remainder: ");
|
|
|
-//Serial.println (remainder,4);
|
|
|
-//Serial.print("value: ");
|
|
|
-//Serial.println (value,3);
|
|
|
-//Serial.print("number: ");
|
|
|
-// Serial.println(number );
|
|
|
- numberLAP /= 10;
|
|
|
-
|
|
|
-// Serial.print("number: ");
|
|
|
-// Serial.println(numberX,3 );
|
|
|
- }
|
|
|
-
|
|
|
- //Latch the current segment data
|
|
|
- digitalWrite(segmentLatchLAP, LOW);
|
|
|
- digitalWrite(segmentLatchLAP, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-//Given a number, or '-', shifts it out to the display
|
|
|
-void postNumberLAP(int number, boolean decimal)
|
|
|
-{
|
|
|
- // - A
|
|
|
- // / / F/B
|
|
|
- // - G
|
|
|
- // / / E/C
|
|
|
- // -. D/DP
|
|
|
-
|
|
|
-#define a 1<<0
|
|
|
-#define b 1<<6
|
|
|
-#define c 1<<5
|
|
|
-#define d 1<<4
|
|
|
-#define e 1<<3
|
|
|
-#define f 1<<1
|
|
|
-#define g 1<<2
|
|
|
-#define dp 1<<7
|
|
|
-
|
|
|
- byte segmentsLAP;
|
|
|
-
|
|
|
- switch (number)
|
|
|
- {
|
|
|
- case 1: segmentsLAP = b | c; break;
|
|
|
- case 2: segmentsLAP = a | b | d | e | g; break;
|
|
|
- case 3: segmentsLAP = a | b | c | d | g; break;
|
|
|
- case 4: segmentsLAP = f | g | b | c; break;
|
|
|
- case 5: segmentsLAP = a | f | g | c | d; break;
|
|
|
- case 6: segmentsLAP = a | f | g | e | c | d; break;
|
|
|
- case 7: segmentsLAP = a | b | c; break;
|
|
|
- case 8: segmentsLAP = a | b | c | d | e | f | g; break;
|
|
|
- case 9: segmentsLAP = a | b | c | d | f | g; break;
|
|
|
- // case 0:
|
|
|
- // if (number > 9) {
|
|
|
- // segments = a | b | c | d | e | f; break;
|
|
|
- // } else segments = 0; break;
|
|
|
-
|
|
|
- case 0: segmentsLAP = a | b | c | d | e | f; break;
|
|
|
- case ' ': segmentsLAP = 0; break;
|
|
|
- case 'c': segmentsLAP = g | e | d; break;
|
|
|
- case '-': segmentsLAP = g; break;
|
|
|
- }
|
|
|
-
|
|
|
- if (decimal) segmentsLAP |= dp;
|
|
|
-
|
|
|
- //Clock these bits out to the drivers
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClockLAP, LOW);
|
|
|
- digitalWrite(segmentDataLAP, segmentsLAP & 1 << (7 - x));
|
|
|
- digitalWrite(segmentClockLAP, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-void showShapeLAP(int shape)
|
|
|
-{
|
|
|
- // - A
|
|
|
- // / / F/B
|
|
|
- // - G
|
|
|
- // / / E/C
|
|
|
- // -. D/DP
|
|
|
-
|
|
|
-#define a 1<<0
|
|
|
-#define b 1<<6
|
|
|
-#define c 1<<5
|
|
|
-#define d 1<<4
|
|
|
-#define e 1<<3
|
|
|
-#define f 1<<1
|
|
|
-#define g 1<<2
|
|
|
-#define dp 1<<7
|
|
|
-
|
|
|
- byte segmentsLAP1;
|
|
|
- byte segmentsLAP2;
|
|
|
-
|
|
|
- switch (shape)
|
|
|
- {
|
|
|
- //
|
|
|
- case 0:
|
|
|
- segmentsLAP1 = a | f | b | e | c | d;
|
|
|
- segmentsLAP2 = a | f | b | e | c | d;
|
|
|
- break;
|
|
|
- // . .
|
|
|
- case 1:
|
|
|
- segmentsLAP1 = dp;
|
|
|
- segmentsLAP2 = dp;
|
|
|
- break;
|
|
|
- // _ _
|
|
|
- case 2:
|
|
|
- segmentsLAP1 = d;
|
|
|
- segmentsLAP2 = d;
|
|
|
-
|
|
|
- break;
|
|
|
- // Double 88
|
|
|
- case 3:
|
|
|
- segmentsLAP1 = a | f | b | e | c | d | g;
|
|
|
- segmentsLAP2 = a | f | b | e | c | d | g;
|
|
|
- break;
|
|
|
- // - -
|
|
|
- case 4:
|
|
|
- segmentsLAP1 = g;
|
|
|
- segmentsLAP2 = g;
|
|
|
- break;
|
|
|
- // NOTHING
|
|
|
- case 5:
|
|
|
- segmentsLAP1 = 0;
|
|
|
- segmentsLAP2 = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- //Clock these bits out to the drivers
|
|
|
- // SegmentLAP1
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClockLAP, LOW);
|
|
|
- digitalWrite(segmentDataLAP, segmentsLAP1 & 1 << (7 - x));
|
|
|
- digitalWrite(segmentClockLAP, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(segmentLatchLAP, LOW);
|
|
|
- digitalWrite(segmentLatchLAP, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-
|
|
|
- // SegmentLAP2
|
|
|
- for (byte x = 0 ; x < 8 ; x++)
|
|
|
- {
|
|
|
- digitalWrite(segmentClockLAP, LOW);
|
|
|
- digitalWrite(segmentDataLAP, segmentsLAP2 & 1 << (7 - x));
|
|
|
-
|
|
|
- digitalWrite(segmentClockLAP, HIGH); //Data transfers to the register on the rising edge of SRCK
|
|
|
- }
|
|
|
-
|
|
|
- digitalWrite(segmentLatchLAP, LOW);
|
|
|
- digitalWrite(segmentLatchLAP, HIGH); //Register moves storage register on the rising edge of RCK
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-
|