7 segment display library for mbed This routine support 2,4 and 8 digit anode-common or cathode-common LED.
Sseg.h
- Committer:
- morecat_lab
- Date:
- 2013-10-20
- Revision:
- 0:6bf4ee8ee342
- Child:
- 1:12daa491059c
File content as of revision 0:6bf4ee8ee342:
/* SSeg.cpp - mbed library for 7seg 4digit/8digit LED matrix. Copyright 2013 morecat_lab base on Dots library. Copyright 2010 arms22. All right reserved. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef SSEG_H #define SSEG_H #include "mbed.h" #include <Timer.h> #define NUM_PAT_0 0xfc #define NUM_PAT_1 0x60 #define NUM_PAT_2 0xda #define NUM_PAT_3 0xf2 #define NUM_PAT_4 0x66 #define NUM_PAT_5 0xb6 #define NUM_PAT_6 0xbe #define NUM_PAT_7 0xe0 #define NUM_PAT_8 0xfe #define NUM_PAT_9 0xf6 #define NUM_PAT_A 0xee #define NUM_PAT_B 0x3e #define NUM_PAT_C 0x9c #define NUM_PAT_D 0x7a #define NUM_PAT_E 0x9e #define NUM_PAT_F 0x8e class Sseg { private: unsigned long _lastUpdateTime; int _updateInterval; BusOut _segPins; BusOut _digPins; char _buffer[8]; int _numOfDigs; int _dig; // support 4 or 8 bool _zeroSupress; bool _kcommon; // Cathode-common flag void initConv(void); Timer timer; public: static const int numConv[16]; // 2 digit Sseg(PinName a,PinName b,PinName c,PinName d, PinName e,PinName f,PinName g,PinName dp, PinName d1,PinName d2); // 4 digit Sseg(PinName a,PinName b,PinName c,PinName d, PinName e,PinName f,PinName g,PinName dp, PinName d1,PinName d2, PinName d3, PinName d4); // 8 digit Sseg(PinName a,PinName b,PinName c,PinName d, PinName e,PinName f,PinName g,PinName dp, PinName d1,PinName d2, PinName d3, PinName d4, PinName d5,PinName d6, PinName d7, PinName d8); void begin(void); void setKcommon(void); void setAcommon(void); char segCh(char i); void setDot(int d); void clearDot(int d); void writeNum(int n); void writeNum2(int n); void writeNum4(int n); void writeNum8(int n); void writeNum(char d1, char d2); void writeNum(char d1, char d2, char d3, char d4); void writeNum(char d1, char d2, char d3, char d4, char d5, char d6, char d7, char d8); void supressZero(); void setZeroSupress(bool t); void writeHex(int n); void writeHex(long n); void writeRawData(char d1, char d2); void writeRawData(char d1, char d2, char d3, char d4); void writeRawData(char d1, char d2, char d3, char d4, char d5, char d6, char d7, char d8); void write(uint8_t x, uint8_t y, uint8_t value); void write(uint8_t y, uint8_t value); void write(uint8_t y, const uint8_t values[], uint8_t size); void clear(void); void turnOff(void); void turnOn(void); void updateSeg(void); bool update(void); void updateWithDelay(int ms); void updateOnce(void); }; #endif // SSEG.h