Demo Clock with Nucleo-F303RE and Starter Shield

Dependents:   Nucleo_StarterShileld_Clock mojo main job ... more

Revision:
0:864e710889fa
Child:
1:e4450fb0849a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TM1636.h	Thu May 18 08:02:54 2017 +0000
@@ -0,0 +1,79 @@
+//  Author:Frankie.Chu
+//  Date:9 April,2012
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License, or (at your option) any later version.
+//
+//  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.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+//  Modified record:
+//
+/*******************************************************************************/
+
+#ifndef TM1636_h
+#define TM1636_h
+#include "mbed.h"
+#include <inttypes.h>
+
+//************definitions for TM1636*********************
+#define ADDR_AUTO  0x40
+#define ADDR_FIXED 0x44
+
+#define STARTADDR  0xc0 
+/**** definitions for the clock point of the digit tube *******/
+#define POINT_ON   1
+#define POINT_OFF  0
+/**************definitions for brightness***********************/
+#define  BRIGHT_DARKEST 0
+#define  BRIGHT_TYPICAL 2
+#define  BRIGHTEST      7
+
+//--------------------------------------------------------//
+//Special characters index of tube table
+#define INDEX_NEGATIVE_SIGN	16
+#define INDEX_BLANK			17
+
+#define LOW  0
+#define HIGH 1
+
+class TM1636
+{
+public:
+  uint8_t Cmd_SetData;
+  uint8_t Cmd_SetAddr;
+  uint8_t Cmd_DispCtrl;
+  bool _PointFlag;     										// _PointFlag=1:the clock point on
+  uint8_t _brightness;
+  TM1636(PinName Clk, PinName Data);
+  void init(void);        									// To clear the display
+  void writeByte(int8_t wr_data);							// write 8bit data to tm1637
+  void start(void);											// send start bits
+  void stop(void); 											// send stop bits
+  void display(int8_t DispData[]);
+  void display(uint8_t BitAddr,int8_t DispData);
+  void clearDisplay(void);
+  void set(uint8_t = BRIGHT_TYPICAL,uint8_t = 0x40,uint8_t = 0xc0);	//To take effect the next time it displays.
+  void point(bool PointFlag);								// whether to light the clock point ":".To take effect the next time it displays.
+  void coding(int8_t DispData[]); 
+  int8_t coding(int8_t DispData); 
+  inline void setBrightness(uint8_t brightness) {
+  	_brightness = brightness;
+  }
+  inline uint8_t getBrightness(){
+    return _brightness;
+  }
+private:
+  DigitalInOut Clkpin;
+  DigitalInOut Datapin;
+};
+#endif
+