SAA1064 4 Digit Library

SAA1064 4 Digit Library for SMD IoTKit Shield

Committer:
marcel1691
Date:
Mon Apr 20 07:36:41 2015 +0000
Revision:
1:e6f764285b44
Parent:
SAA1064/SAA1064.h@0:8b1f83a2ae0a
File location

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcel1691 0:8b1f83a2ae0a 1 /* SAA1064 4 Digit Library
marcel1691 0:8b1f83a2ae0a 2 * Copyright (c) 2015 Marcel (mc-b) Bernet
marcel1691 0:8b1f83a2ae0a 3 *
marcel1691 0:8b1f83a2ae0a 4 * Licensed under the Apache License, Version 2.0 (the "License");
marcel1691 0:8b1f83a2ae0a 5 * you may not use this file except in compliance with the License.
marcel1691 0:8b1f83a2ae0a 6 * You may obtain a copy of the License at
marcel1691 0:8b1f83a2ae0a 7 *
marcel1691 0:8b1f83a2ae0a 8 * http://www.apache.org/licenses/LICENSE-2.0
marcel1691 0:8b1f83a2ae0a 9 *
marcel1691 0:8b1f83a2ae0a 10 * Unless required by applicable law or agreed to in writing, software
marcel1691 0:8b1f83a2ae0a 11 * distributed under the License is distributed on an "AS IS" BASIS,
marcel1691 0:8b1f83a2ae0a 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
marcel1691 0:8b1f83a2ae0a 13 * See the License for the specific language governing permissions and
marcel1691 0:8b1f83a2ae0a 14 * limitations under the License.
marcel1691 0:8b1f83a2ae0a 15 */
marcel1691 0:8b1f83a2ae0a 16 #ifndef _SAA1064_H
marcel1691 0:8b1f83a2ae0a 17 #define _SAA1064_H
marcel1691 0:8b1f83a2ae0a 18
marcel1691 0:8b1f83a2ae0a 19 //Address Defines for SAA1064
marcel1691 0:8b1f83a2ae0a 20 #define SAA1064_SA0 0x70
marcel1691 0:8b1f83a2ae0a 21 #define SAA1064_SA1 0x72
marcel1691 0:8b1f83a2ae0a 22 #define SAA1064_SA2 0x74
marcel1691 0:8b1f83a2ae0a 23 #define SAA1064_SA3 0x76
marcel1691 0:8b1f83a2ae0a 24
marcel1691 0:8b1f83a2ae0a 25 //Defines for Segments
marcel1691 0:8b1f83a2ae0a 26 const uint8_t SAA1064_SEGM[] = {0xE7, //0
marcel1691 0:8b1f83a2ae0a 27 0x84, //1
marcel1691 0:8b1f83a2ae0a 28 0xD3, //2
marcel1691 0:8b1f83a2ae0a 29 0xD6, //3
marcel1691 0:8b1f83a2ae0a 30 0xB4, //4
marcel1691 0:8b1f83a2ae0a 31 0x76, //5
marcel1691 0:8b1f83a2ae0a 32 0x77, //6
marcel1691 0:8b1f83a2ae0a 33 0xC4, //7
marcel1691 0:8b1f83a2ae0a 34 0xF7, //8
marcel1691 0:8b1f83a2ae0a 35 0xF6, //9
marcel1691 0:8b1f83a2ae0a 36 0xF5, //A
marcel1691 0:8b1f83a2ae0a 37 0x37, //B
marcel1691 0:8b1f83a2ae0a 38 0x13, //C
marcel1691 0:8b1f83a2ae0a 39 0x97, //D
marcel1691 0:8b1f83a2ae0a 40 0x73, //E
marcel1691 0:8b1f83a2ae0a 41 0x71
marcel1691 0:8b1f83a2ae0a 42 }; //F
marcel1691 0:8b1f83a2ae0a 43
marcel1691 0:8b1f83a2ae0a 44 /** Create an SAA1064 object connected to the specified I2C bus and deviceAddress
marcel1691 0:8b1f83a2ae0a 45 */
marcel1691 0:8b1f83a2ae0a 46 class SAA1064
marcel1691 0:8b1f83a2ae0a 47 {
marcel1691 0:8b1f83a2ae0a 48 public:
marcel1691 0:8b1f83a2ae0a 49
marcel1691 0:8b1f83a2ae0a 50 /** Create a SAA1064 LED displaydriver object using a specified I2C bus and slaveaddress
marcel1691 0:8b1f83a2ae0a 51 *
marcel1691 0:8b1f83a2ae0a 52 * @param sda Pin
marcel1691 0:8b1f83a2ae0a 53 * @param scl Pin
marcel1691 0:8b1f83a2ae0a 54 * @param char deviceAddress the address of the SAA1064
marcel1691 0:8b1f83a2ae0a 55 */
marcel1691 0:8b1f83a2ae0a 56 SAA1064( PinName sda = D14, PinName scl = D15, uint8_t deviceAddress = SAA1064_SA0 );
marcel1691 0:8b1f83a2ae0a 57
marcel1691 0:8b1f83a2ae0a 58 SAA1064( I2C* i2c, uint8_t deviceAddress = SAA1064_SA0 );
marcel1691 0:8b1f83a2ae0a 59
marcel1691 0:8b1f83a2ae0a 60 /** Write digits
marcel1691 0:8b1f83a2ae0a 61 *
marcel1691 0:8b1f83a2ae0a 62 * @param digit1 LED segment pattern for digit1 (MSB)
marcel1691 0:8b1f83a2ae0a 63 * @param digit2 LED segment pattern for digit2
marcel1691 0:8b1f83a2ae0a 64 * @param digit3 LED segment pattern for digit3
marcel1691 0:8b1f83a2ae0a 65 * @param digit4 LED segment pattern for digit4 (LSB)
marcel1691 0:8b1f83a2ae0a 66 */
marcel1691 0:8b1f83a2ae0a 67 void write(uint8_t digit1, uint8_t digit2, uint8_t digit3, uint8_t digit4);
marcel1691 0:8b1f83a2ae0a 68
marcel1691 0:8b1f83a2ae0a 69 /** Write Integer
marcel1691 0:8b1f83a2ae0a 70 *
marcel1691 0:8b1f83a2ae0a 71 * @param value integer value to display, valid range -999...9999
marcel1691 0:8b1f83a2ae0a 72 */
marcel1691 0:8b1f83a2ae0a 73 void writeInt( int value );
marcel1691 0:8b1f83a2ae0a 74
marcel1691 0:8b1f83a2ae0a 75 protected:
marcel1691 0:8b1f83a2ae0a 76 void init( void );
marcel1691 0:8b1f83a2ae0a 77
marcel1691 0:8b1f83a2ae0a 78 I2C *i2c; //I2C bus reference
marcel1691 0:8b1f83a2ae0a 79 uint8_t slaveAddress; //I2C Slave address of device
marcel1691 0:8b1f83a2ae0a 80 uint8_t data[6];
marcel1691 0:8b1f83a2ae0a 81 };
marcel1691 0:8b1f83a2ae0a 82
marcel1691 0:8b1f83a2ae0a 83 #endif