7 segment display library for mbed This routine support 2,4 and 8 digit anode-common or cathode-common LED.

Dependents:   7segMbed

Files at this revision

API Documentation at this revision

Comitter:
morecat_lab
Date:
Thu Aug 07 02:26:56 2014 +0000
Parent:
0:6bf4ee8ee342
Child:
2:6f63a5e21d08
Commit message:
write document

Changed in this revision

Sseg.cpp Show annotated file Show diff for this revision Revisions of this file
Sseg.h Show annotated file Show diff for this revision Revisions of this file
--- a/Sseg.cpp	Sun Oct 20 05:59:40 2013 +0000
+++ b/Sseg.cpp	Thu Aug 07 02:26:56 2014 +0000
@@ -230,8 +230,8 @@
     _buffer[y] = tmp;
 }
 
-void Sseg::write(uint8_t y, uint8_t value) {
-    _buffer[y] = value;
+void Sseg::write(uint8_t d, uint8_t value) {
+    _buffer[d] = value;
 }
 
 void Sseg::write(uint8_t y, const uint8_t values[], uint8_t size) {
--- 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);