| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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
- }
|