SAA1064 4 Digit Library
SAA1064 4 Digit Library for SMD IoTKit Shield
SAA1064.h@1:e6f764285b44, 2015-04-20 (annotated)
- 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?
User | Revision | Line number | New 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 |