DisplayCurrentTime.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "FastLED.h"
  2. #include "DisplayCurrentTime.h"
  3. int zero[18] = {1,2,3,4,25,28,49,52,73,76,97,100,121,124,145,146,147,148}; // Lattice of Number 0
  4. int one[10] = {3,26,27,51,75,99,123,146,147,148}; // Lattice of Number 1
  5. int two[16] = {1,2,3,4,28,52,73,74,75,76,97,121,145,146,147,148}; // Lattice of Number 2
  6. int three[16] = {1,2,3,4,28,52,73,74,75,76,100,124,145,146,147,148}; // Lattice of Number 3
  7. int four[13] = {1,3,25,27,49,51,73,74,75,76,99,123,147}; // Lattice of Number 4
  8. int five[16] = {1,2,3,4,25,49,73,74,75,76,100,124,145,146,147,148}; // Lattice of Number 5
  9. int six[18] = {1,2,3,4,25,49,73,74,75,76,97,100,121,124,145,146,147,148}; // Lattice of Number 6
  10. int seven[10] = {1,2,3,4,28,51,75,99,123,147}; // Lattice of Number 7
  11. int eight[20] = {1,2,3,4,25,28,49,52,73,74,75,76,97,100,121,124,145,146,147,148}; // Lattice of Number 8
  12. int nine[18] = {1,2,3,4,25,28,49,52,73,74,75,76,100,124,145,146,147,148}; // Lattice of Number 9
  13. int point[2] = {84,132}; // Lattice of character :
  14. int lenth[11] = {18,10,16,16,13,16,18,10,20,18,2};
  15. int *num[10]={zero,one,two,three,four,five,six,seven,eight,nine};
  16. int index_led;
  17. void displayCurrentTime(uint16_t time4Day)
  18. {
  19. int offset = 0;
  20. int number = 10000;
  21. while(number)
  22. {
  23. int n = time4Day / number;
  24. if(n!=0)
  25. {
  26. time4Day = time4Day % number;
  27. }
  28. for(index_led=0;index_led<lenth[n];index_led++)
  29. {
  30. int a=*(*(num+n)+index_led) + offset;
  31. leds[a] = CRGB::White;
  32. }
  33. if(offset==6)
  34. offset += 7;
  35. else
  36. offset += 6;
  37. number = number / 10;
  38. if(number==100)
  39. number = number / 10;
  40. }
  41. }
  42. void diaplayPoint()
  43. {
  44. for(index_led=0;index_led<2;index_led++)
  45. {
  46. int b = point[index_led];
  47. leds[b] = CRGB::White;
  48. }
  49. }
  50. void clearPoint()
  51. {
  52. for(index_led=0;index_led<2;index_led++)
  53. {
  54. int c = point[index_led];
  55. leds[c] = CRGB::Black;
  56. }
  57. }
  58. void clearLeds()
  59. {
  60. for(index_led=0;index_led<192;index_led++)
  61. {
  62. leds[index_led] = CRGB::Black;
  63. }
  64. }