Demo Clock with Nucleo-F303RE and Starter Shield
Dependents: Nucleo_StarterShileld_Clock mojo main job ... more
Diff: TM1636.h
- Revision:
- 0:864e710889fa
- Child:
- 1:e4450fb0849a
diff -r 000000000000 -r 864e710889fa TM1636.h --- /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 +