LED7Seg  1.00
LED 7-segment library
LED7Seg.h
1 #ifndef LED_7_SEG_H_FILE
2 #define LED_7_SEG_H_FILE
3 
22 #if defined(ARDUINO) && ARDUINO >= 100
23 #include "Arduino.h"
24 #else
25 //#include "WProgram.h"
26  #define PROGMEM
27  #define pgm_read_byte_near(x) (*(uint8_t*) (x))
28 #endif
29 
30 #ifdef _MSC_VER
31  typedef signed __int8 int8_t;
32  typedef signed __int16 int16_t;
33  typedef unsigned __int8 uint8_t;
34  typedef unsigned __int16 uint16_t;
35 #else
36  #include <stdint.h>
37 #endif
38 
48 #if defined(ARDUINO)
49 enum led_seg : uint8_t
50 #else
51 enum led_seg
52 #endif
53 {
54  SEG_NONE=0x00,
55  SEG_A=0x01,
56  SEG_B=0x02,
57  SEG_C=0x04,
58  SEG_D=0x08,
59  SEG_E=0x10,
60  SEG_F=0x20,
61  SEG_G=0x40,
62  SEG_DP=0x80,
164 };
165 
166 extern const PROGMEM enum led_seg LED_AsciiFont[96];
167 extern const PROGMEM enum led_seg LED_HexFont[16];
168 
182 #define LED_GET_FONT(font,c) ((enum led_seg)(((c) < sizeof(font)) ? pgm_read_byte_near(font + (c)) : (c)))
183 
188 #if defined(ARDUINO)
189 enum led_dig : uint8_t
190 #else
192 #endif
193 {
194  DIG_NONE=0x00,
195  DIG_0=0x01,
196  DIG_1=0x02,
197  DIG_2=0x04,
198  DIG_3=0x08,
199  DIG_4=0x10,
200  DIG_5=0x20,
201  DIG_6=0x40,
202  DIG_7=0x80,
204 };
205 
210 #if defined(_ARUDINO)
211 enum led_config : uint8_t
212 #else
214 #endif
215 {
216  SEG_INVERT=0x01,
217  DIG_INVERT=0x02,
218 
219  // Use defines to link the hardware configurations to the correct numbers
222 };
223 
249 class SevSeg
250 {
251 public:
252  // Constructor
253  SevSeg();
254 protected:
255  uint8_t m_config;
256  uint8_t m_digits;
257  uint8_t m_index;
258  unsigned long m_last;
259 
261  const uint8_t* m_pins;
262 
263 public:
264  void begin(enum led_config conf, uint8_t digits, const uint8_t* pin);
265  void setSegments(enum led_seg mask);
266  void setDigits(enum led_dig mask);
267  void refreshDigits(void);
268  void refreshSegments(void);
269  void showHex(unsigned long num);
270  void showNumber(unsigned long num, uint8_t dp, enum led_seg fill = SEG_NONE);
271  void showDecimal(signed long i, uint8_t dp);
272  void showText(const char* str);
273  void showRaw(const enum led_seg* buf);
274 };
275 
276 #endif
Definition: LED7Seg.h:120
Definition: LED7Seg.h:107
Definition: LED7Seg.h:129
Definition: LED7Seg.h:115
Definition: LED7Seg.h:143
Definition: LED7Seg.h:138
void showDecimal(signed long i, uint8_t dp)
Definition: LED7Seg.cpp:205
Definition: LED7Seg.h:151
Definition: LED7Seg.h:111
Definition: LED7Seg.h:152
Definition: LED7Seg.h:108
Config for Common Cathode LED display.
Definition: LED7Seg.h:221
void setDigits(enum led_dig mask)
Definition: LED7Seg.cpp:69
Definition: LED7Seg.h:78
Definition: LED7Seg.h:77
Definition: LED7Seg.h:117
Definition: LED7Seg.h:101
Definition: LED7Seg.h:56
Definition: LED7Seg.h:136
Definition: LED7Seg.h:130
void setSegments(enum led_seg mask)
Definition: LED7Seg.cpp:52
Definition: LED7Seg.h:70
const uint8_t * m_pins
Digit pin array.
Definition: LED7Seg.h:261
unsigned long m_last
Timestamp of last refresh/update.
Definition: LED7Seg.h:258
Definition: LED7Seg.h:88
Definition: LED7Seg.h:58
Definition: LED7Seg.h:72
Definition: LED7Seg.h:110
Definition: LED7Seg.h:97
Definition: LED7Seg.h:94
Definition: LED7Seg.h:66
Definition: LED7Seg.h:133
Definition: LED7Seg.h:141
Definition: LED7Seg.h:147
uint8_t m_config
Config byte: bit 0=SEG_INVERT, bit 1=DIG_INVERT.
Definition: LED7Seg.h:255
Definition: LED7Seg.h:140
Definition: LED7Seg.h:150
led_config
LED config.
Definition: LED7Seg.h:213
Definition: LED7Seg.h:68
Definition: LED7Seg.h:74
Definition: LED7Seg.h:57
Definition: LED7Seg.h:85
Definition: LED7Seg.h:132
Definition: LED7Seg.h:142
Definition: LED7Seg.h:100
void showRaw(const enum led_seg *buf)
Definition: LED7Seg.cpp:236
Definition: LED7Seg.h:155
Definition: LED7Seg.h:83
Definition: LED7Seg.h:121
Definition: LED7Seg.h:99
LED 7-Segment library.
Definition: LED7Seg.h:249
Definition: LED7Seg.h:87
Definition: LED7Seg.h:195
Definition: LED7Seg.h:154
Definition: LED7Seg.h:103
Definition: LED7Seg.h:127
Definition: LED7Seg.h:145
void showNumber(unsigned long num, uint8_t dp, enum led_seg fill=SEG_NONE)
Definition: LED7Seg.cpp:169
Definition: LED7Seg.h:196
Definition: LED7Seg.h:162
Definition: LED7Seg.h:144
Definition: LED7Seg.h:63
Definition: LED7Seg.h:153
Definition: LED7Seg.h:134
Definition: LED7Seg.h:109
Definition: LED7Seg.h:116
SevSeg()
Constructor.
Definition: LED7Seg.cpp:16
Definition: LED7Seg.h:67
Definition: LED7Seg.h:71
Definition: LED7Seg.h:128
Definition: LED7Seg.h:197
Definition: LED7Seg.h:114
Definition: LED7Seg.h:203
Definition: LED7Seg.h:92
enum led_seg m_buf[MAX_DIGITS]
Buffer of segments to display.
Definition: LED7Seg.h:260
Definition: LED7Seg.h:124
led_seg
LED segment.
Definition: LED7Seg.h:51
Definition: LED7Seg.h:73
Definition: LED7Seg.h:61
Definition: LED7Seg.h:96
Definition: LED7Seg.h:91
Definition: LED7Seg.h:54
Definition: LED7Seg.h:59
Definition: LED7Seg.h:90
Definition: LED7Seg.h:75
Config for Common Anode LED display.
Definition: LED7Seg.h:220
Definition: LED7Seg.h:156
Definition: LED7Seg.h:146
Definition: LED7Seg.h:198
Definition: LED7Seg.h:106
Definition: LED7Seg.h:118
Definition: LED7Seg.h:157
Definition: LED7Seg.h:158
Definition: LED7Seg.h:125
Definition: LED7Seg.h:79
Definition: LED7Seg.h:55
Definition: LED7Seg.h:163
Definition: LED7Seg.h:95
Definition: LED7Seg.h:105
void refreshDigits(void)
Definition: LED7Seg.cpp:86
Definition: LED7Seg.h:89
Definition: LED7Seg.h:123
Definition: LED7Seg.h:65
void showHex(unsigned long num)
Definition: LED7Seg.cpp:152
Definition: LED7Seg.h:135
Definition: LED7Seg.h:69
Definition: LED7Seg.h:202
Bit mask for SEG_INVERT.
Definition: LED7Seg.h:216
Definition: LED7Seg.h:76
Definition: LED7Seg.h:60
void refreshSegments(void)
Definition: LED7Seg.cpp:110
Bit mask for DIG_INVERT.
Definition: LED7Seg.h:217
Definition: LED7Seg.h:93
void begin(enum led_config conf, uint8_t digits, const uint8_t *pin)
Definition: LED7Seg.cpp:26
uint8_t m_index
Index of digit to multiplex.
Definition: LED7Seg.h:257
Definition: LED7Seg.h:200
Definition: LED7Seg.h:160
Definition: LED7Seg.h:112
Definition: LED7Seg.h:122
Definition: LED7Seg.h:148
Definition: LED7Seg.h:126
Definition: LED7Seg.h:62
Definition: LED7Seg.h:102
Definition: LED7Seg.h:137
Definition: LED7Seg.h:199
Definition: LED7Seg.h:194
Definition: LED7Seg.h:201
Definition: LED7Seg.h:159
Definition: LED7Seg.h:139
Definition: LED7Seg.h:84
Definition: LED7Seg.h:113
Definition: LED7Seg.h:119
led_dig
LED dig.
Definition: LED7Seg.h:191
Definition: LED7Seg.h:80
Definition: LED7Seg.h:149
Definition: LED7Seg.h:104
Definition: LED7Seg.h:82
Definition: LED7Seg.h:161
uint8_t m_digits
Number of digits (e.g. sizeof(m_digitPin)
Definition: LED7Seg.h:256
void showText(const char *str)
Definition: LED7Seg.cpp:222
Definition: LED7Seg.h:86