Reduced hysteresis to 3 samples. Expanded valid pulse width range.
[the_perfect_clock.git] / display_test / display_test.ino
1 #include <Adafruit_LEDBackpack.h>\r
2 \r
3 #include <Adafruit_GFX.h>\r
4 #include <Adafruit_SPITFT.h>\r
5 #include <Adafruit_SPITFT_Macros.h>\r
6 #include <gfxfont.h>\r
7 \r
8 /*************************************************** \r
9   This is a library for our I2C LED Backpacks\r
10 \r
11   Designed specifically to work with the Adafruit LED 7-Segment backpacks \r
12   ----> http://www.adafruit.com/products/881\r
13   ----> http://www.adafruit.com/products/880\r
14   ----> http://www.adafruit.com/products/879\r
15   ----> http://www.adafruit.com/products/878\r
16 \r
17   These displays use I2C to communicate, 2 pins are required to \r
18   interface. There are multiple selectable I2C addresses. For backpacks\r
19   with 2 Address Select pins: 0x70, 0x71, 0x72 or 0x73. For backpacks\r
20   with 3 Address Select pins: 0x70 thru 0x77\r
21 \r
22   Adafruit invests time and resources providing this open source code, \r
23   please support Adafruit and open-source hardware by purchasing \r
24   products from Adafruit!\r
25 \r
26   Written by Limor Fried/Ladyada for Adafruit Industries.  \r
27   BSD license, all text above must be included in any redistribution\r
28  ****************************************************/\r
29 \r
30 //#include <Wire.h> // Enable this line if using Arduino Uno, Mega, etc.\r
31 #include <Adafruit_GFX.h>\r
32 #include "Adafruit_LEDBackpack.h"\r
33 \r
34 Adafruit_7segment matrix = Adafruit_7segment();\r
35 \r
36 void setup() {\r
37 #ifndef __AVR_ATtiny85__\r
38   Serial.begin(9600);\r
39   Serial.println("7 Segment Backpack Test");\r
40 #endif\r
41   matrix.begin(0x70);\r
42 }\r
43 \r
44 void loop() {\r
45   // try to print a number thats too long\r
46   matrix.print(10000, DEC);\r
47   matrix.writeDisplay();\r
48   delay(500);\r
49 \r
50   // print a hex number\r
51   matrix.print(0xBEEF, HEX);\r
52   matrix.writeDisplay();\r
53   delay(500);\r
54 \r
55   // print a floating point \r
56   matrix.print(12.34);\r
57   matrix.writeDisplay();\r
58   delay(500);\r
59   \r
60   // print with print/println\r
61   for (uint16_t counter = 0; counter < 9999; counter++) {\r
62     matrix.println(counter);\r
63     matrix.writeDisplay();\r
64     delay(10);\r
65   }\r
66 \r
67   // method #2 - draw each digit\r
68   uint16_t blinkcounter = 0;\r
69   boolean drawDots = false;\r
70   for (uint16_t counter = 0; counter < 9999; counter ++) {\r
71     matrix.writeDigitNum(0, (counter / 1000), drawDots);\r
72     matrix.writeDigitNum(1, (counter / 100) % 10, drawDots);\r
73     matrix.drawColon(drawDots);\r
74     matrix.writeDigitNum(3, (counter / 10) % 10, drawDots);\r
75     matrix.writeDigitNum(4, counter % 10, drawDots);\r
76    \r
77     blinkcounter+=50;\r
78     if (blinkcounter < 500) {\r
79       drawDots = false;\r
80     } else if (blinkcounter < 1000) {\r
81       drawDots = true;\r
82     } else {\r
83       blinkcounter = 0;\r
84     }\r
85     matrix.writeDisplay();\r
86     delay(10);\r
87   }\r
88 }\r