7 segment display library for mbed This routine support 2,4 and 8 digit anode-common or cathode-common LED.
Diff: Sseg.h
- Revision:
- 1:12daa491059c
- Parent:
- 0:6bf4ee8ee342
- Child:
- 2:6f63a5e21d08
--- a/Sseg.h Sun Oct 20 05:59:40 2013 +0000 +++ b/Sseg.h Thu Aug 07 02:26:56 2014 +0000 @@ -1,8 +1,8 @@ /* - SSeg.cpp - mbed library for 7seg 4digit/8digit LED matrix. - Copyright 2013 morecat_lab + SSeg.cpp - mbed library for 7seg 2/4/8digit seven segment LED driver. + Copyright 2013,2014 by morecat_lab - base on Dots library. + based on Dots library. Copyright 2010 arms22. All right reserved. This library is distributed in the hope that it will be useful, @@ -33,6 +33,9 @@ #define NUM_PAT_E 0x9e #define NUM_PAT_F 0x8e +/** + * Seven segment display driver library + */ class Sseg { private: @@ -49,47 +52,267 @@ Timer timer; public: static const int numConv[16]; - // 2 digit + /** + * create an 2 digit seven segment driver + * + * @param PinName a Pin No for segment A + * @param PinName b Pin No for segment B + * @param PinName c Pin No for segment C + * @param PinName d Pin No for segment D + * @param PinName e Pin No for segment E + * @param PinName f Pin No for segment F + * @param PinName g Pin No for segment G + * @param PinName dp Pin No for segment DP + * @param PinName d1 Pin No for dight 1 + * @param PinName d2 Pin No for dight 2 + */ Sseg(PinName a,PinName b,PinName c,PinName d, PinName e,PinName f,PinName g,PinName dp, PinName d1,PinName d2); - // 4 digit + /** + * create an 4 digit seven segment driver + * + * @param PinName a Pin No for segment A + * @param PinName b Pin No for segment B + * @param PinName c Pin No for segment C + * @param PinName d Pin No for segment D + * @param PinName e Pin No for segment E + * @param PinName f Pin No for segment F + * @param PinName g Pin No for segment G + * @param PinName dp Pin No for segment DP + * @param PinName d1 Pin No for dight 1 + * @param PinName d2 Pin No for dight 2 + * @param PinName d3 Pin No for dight 3 + * @param PinName d4 Pin No for dight 4 + */ 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 + /** + * create an 8 digit seven segment driver + * + * @param PinName a Pin No for segment A + * @param PinName b Pin No for segment B + * @param PinName c Pin No for segment C + * @param PinName d Pin No for segment D + * @param PinName e Pin No for segment E + * @param PinName f Pin No for segment F + * @param PinName g Pin No for segment G + * @param PinName dp Pin No for segment DP + * @param PinName d1 Pin No for dight 1 + * @param PinName d2 Pin No for dight 2 + * @param PinName d3 Pin No for dight 3 + * @param PinName d4 Pin No for dight 4 + * @param PinName d5 Pin No for dight 5 + * @param PinName d6 Pin No for dight 6 + * @param PinName d7 Pin No for dight 7 + * @param PinName d8 Pin No for dight 8 + */ 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); + /** + * start driver + */ void begin(void); + + /** + * use Kathode Common LED + */ void setKcommon(void); + + /** + * use Anode Common LED (default) + */ void setAcommon(void); - char segCh(char i); + + /** + * get charcter pattern from number + * + * @param i number + * + * @returns bit pattern of number i + * + */ + char segCh(char i); + + /** + * turn on DP + * + * @param dight + * + */ void setDot(int d); + + /** + * turn off DP + * + * @param dight + * + */ void clearDot(int d); + + /** + * write a number to LED + * + * @param number + * + */ void writeNum(int n); + + /** + * write a number to 2 dight LED + * + * @param number + * + */ void writeNum2(int n); + + /** + * write a number to 4 dight LED + * + * @param number + * + */ void writeNum4(int n); + + /** + * write a number to 8 dight LED + * + * @param number + * + */ void writeNum8(int n); + + /** + * write numbers to each dight of 2 dight LED + * + * @param d1 digit 1 number + * @param d2 digit 2 number + * + */ void writeNum(char d1, char d2); + + /** + * write numbers to each dight of 4 dight LED + * + * @param d1 digit 1 number + * @param d2 digit 2 number + * @param d3 digit 3 number + * @param d4 digit 4 number + * + */ void writeNum(char d1, char d2, char d3, char d4); + + /** + * write numbers to each dight of 8 dight LED + * + * @param d1 digit 1 number + * @param d2 digit 2 number + * @param d3 digit 3 number + * @param d4 digit 4 number + * @param d5 digit 5 number + * @param d6 digit 6 number + * @param d7 digit 7 number + * @param d8 digit 8 number + * + */ void writeNum(char d1, char d2, char d3, char d4, char d5, char d6, char d7, char d8); + + /** + * zero supress: tell driver not to display 0 in the left + * + */ void supressZero(); + + /** + * control zero supress bit + * + * @param 1 : supress on, 0: supress off + * + */ void setZeroSupress(bool t); + + /** + * write hex number to DISPLAY + * + * @param number + * + */ void writeHex(int n); + + /** + * write hex number to DISPLAY + * + * @param (long)number + * + */ void writeHex(long n); + + /** + * write patterns to each dight of 2 dight LED + * + * @param d1 digit 1 pattern + * @param d2 digit 2 pattern + * + */ void writeRawData(char d1, char d2); + + /** + * write patterns to each dight of 4 dight LED + * + * @param d1 digit 1 pattern + * @param d2 digit 2 pattern + * @param d3 digit 3 pattern + * @param d4 digit 4 pattern + * + */ void writeRawData(char d1, char d2, char d3, char d4); + + /** + * write patterns to each dight of 8 dight LED + * + * @param d1 digit 1 pattern + * @param d2 digit 2 pattern + * @param d3 digit 3 pattern + * @param d4 digit 4 pattern + * @param d5 digit 5 pattern + * @param d6 digit 6 pattern + * @param d7 digit 7 pattern + * @param d8 digit 8 pattern + * + */ 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); + + /** + * write patterns to a dight + * + * @param d digit + * @param value pattern + * + */ + void write(uint8_t d, uint8_t value); void write(uint8_t y, const uint8_t values[], uint8_t size); + + /** + * Clear LED buffer + */ void clear(void); + + /** + * Turn off LED + */ void turnOff(void); + + /** + * Turn on LED + */ void turnOn(void); void updateSeg(void); bool update(void);