showShapeLap.ino 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. void showShapeLAP(int shape)
  2. {
  3. // - A
  4. // / / F/B
  5. // - G
  6. // / / E/C
  7. // -. D/DP
  8. #define a 1<<0
  9. #define b 1<<6
  10. #define c 1<<5
  11. #define d 1<<4
  12. #define e 1<<3
  13. #define f 1<<1
  14. #define g 1<<2
  15. #define dp 1<<7
  16. byte segmentsLAP1;
  17. byte segmentsLAP2;
  18. switch (shape)
  19. {
  20. //
  21. case 0:
  22. segmentsLAP1 = a | f | b | e | c | d;
  23. segmentsLAP2 = a | f | b | e | c | d;
  24. break;
  25. // . .
  26. case 1:
  27. segmentsLAP1 = dp;
  28. segmentsLAP2 = dp;
  29. break;
  30. // _ _
  31. case 2:
  32. segmentsLAP1 = d;
  33. segmentsLAP2 = d;
  34. break;
  35. // Double 88
  36. case 3:
  37. segmentsLAP1 = a | f | b | e | c | d | g;
  38. segmentsLAP2 = a | f | b | e | c | d | g;
  39. break;
  40. // - -
  41. case 4:
  42. segmentsLAP1 = g;
  43. segmentsLAP2 = g;
  44. break;
  45. // NOTHING
  46. case 5:
  47. segmentsLAP1 = 0;
  48. segmentsLAP2 = 0;
  49. break;
  50. }
  51. //Clock these bits out to the drivers
  52. // SegmentLAP1
  53. for (byte x = 0 ; x < 8 ; x++)
  54. {
  55. digitalWrite(segmentClockLAP, LOW);
  56. digitalWrite(segmentDataLAP, segmentsLAP1 & 1 << (7 - x));
  57. digitalWrite(segmentClockLAP, HIGH); //Data transfers to the register on the rising edge of SRCK
  58. }
  59. digitalWrite(segmentLatchLAP, LOW);
  60. digitalWrite(segmentLatchLAP, HIGH); //Register moves storage register on the rising edge of RCK
  61. // SegmentLAP2
  62. for (byte x = 0 ; x < 8 ; x++)
  63. {
  64. digitalWrite(segmentClockLAP, LOW);
  65. digitalWrite(segmentDataLAP, segmentsLAP2 & 1 << (7 - x));
  66. digitalWrite(segmentClockLAP, HIGH); //Data transfers to the register on the rising edge of SRCK
  67. }
  68. digitalWrite(segmentLatchLAP, LOW);
  69. digitalWrite(segmentLatchLAP, HIGH); //Register moves storage register on the rising edge of RCK
  70. }