| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- //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
- }
- }
|