MAX6955 LED driver
MAX6955.h@3:fbcb79f6e0a8, 2018-08-11 (annotated)
- Committer:
- Kentaro Okuda
- Date:
- Sat Aug 11 15:27:43 2018 -0400
- Revision:
- 3:fbcb79f6e0a8
- Parent:
- 1:8936ddb97551
refactoring. extract a method to generate printable char.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kentaro Okuda |
1:8936ddb97551 | 1 | /** |
Kentaro Okuda |
1:8936ddb97551 | 2 | * @file MAX6955.h |
Kentaro Okuda |
1:8936ddb97551 | 3 | * @brief MAX6955 I2C driver |
Kentaro Okuda |
1:8936ddb97551 | 4 | * |
Kentaro Okuda |
1:8936ddb97551 | 5 | */ |
Kentaro Okuda |
1:8936ddb97551 | 6 | |
lonesometraveler | 0:8c7de3096cac | 7 | #ifndef MAX6955_H |
lonesometraveler | 0:8c7de3096cac | 8 | #define MAX6955_H |
lonesometraveler | 0:8c7de3096cac | 9 | |
lonesometraveler | 0:8c7de3096cac | 10 | #include "mbed.h" |
lonesometraveler | 0:8c7de3096cac | 11 | |
Kentaro Okuda |
1:8936ddb97551 | 12 | // max6955 commands |
lonesometraveler | 0:8c7de3096cac | 13 | #define reg_noOp 0x00 |
lonesometraveler | 0:8c7de3096cac | 14 | #define reg_decodeMode 0x01 |
lonesometraveler | 0:8c7de3096cac | 15 | #define reg_globalIntensity 0x02 |
lonesometraveler | 0:8c7de3096cac | 16 | #define reg_scanLimit 0x03 |
lonesometraveler | 0:8c7de3096cac | 17 | #define reg_configuration 0x04 |
lonesometraveler | 0:8c7de3096cac | 18 | #define reg_displayTest 0x07 |
lonesometraveler | 0:8c7de3096cac | 19 | #define reg_digitType 0x0C |
lonesometraveler | 0:8c7de3096cac | 20 | |
lonesometraveler | 0:8c7de3096cac | 21 | #define reg_intensity10 0x10 |
lonesometraveler | 0:8c7de3096cac | 22 | #define reg_intensity32 0x11 |
lonesometraveler | 0:8c7de3096cac | 23 | #define reg_intensity54 0x12 |
lonesometraveler | 0:8c7de3096cac | 24 | #define reg_intensity76 0x13 |
lonesometraveler | 0:8c7de3096cac | 25 | #define reg_intensity10a 0x14 |
lonesometraveler | 0:8c7de3096cac | 26 | #define reg_intensity32a 0x15 |
lonesometraveler | 0:8c7de3096cac | 27 | #define reg_intensity54a 0x16 |
lonesometraveler | 0:8c7de3096cac | 28 | #define reg_intensity76a 0x17 |
lonesometraveler | 0:8c7de3096cac | 29 | |
lonesometraveler | 0:8c7de3096cac | 30 | #define USE_GLOBAL 0x00 |
lonesometraveler | 0:8c7de3096cac | 31 | #define USE_DISCRETE 0x40 |
lonesometraveler | 0:8c7de3096cac | 32 | #define RUN 0x01 |
lonesometraveler | 0:8c7de3096cac | 33 | #define SHUTDOWN 0x00 |
lonesometraveler | 0:8c7de3096cac | 34 | |
lonesometraveler | 0:8c7de3096cac | 35 | #define reg_digit0 0x60 |
lonesometraveler | 0:8c7de3096cac | 36 | #define reg_digit1 0x61 |
lonesometraveler | 0:8c7de3096cac | 37 | #define reg_digit2 0x62 |
lonesometraveler | 0:8c7de3096cac | 38 | #define reg_digit3 0x63 |
lonesometraveler | 0:8c7de3096cac | 39 | #define reg_digit4 0x64 |
lonesometraveler | 0:8c7de3096cac | 40 | #define reg_digit5 0x65 |
lonesometraveler | 0:8c7de3096cac | 41 | #define reg_digit6 0x66 |
lonesometraveler | 0:8c7de3096cac | 42 | #define reg_digit7 0x67 |
lonesometraveler | 0:8c7de3096cac | 43 | #define reg_digit0a 0x68 |
lonesometraveler | 0:8c7de3096cac | 44 | #define reg_digit1a 0x69 |
lonesometraveler | 0:8c7de3096cac | 45 | #define reg_digit2a 0x6A |
lonesometraveler | 0:8c7de3096cac | 46 | #define reg_digit3a 0x6B |
lonesometraveler | 0:8c7de3096cac | 47 | #define reg_digit4a 0x6C |
lonesometraveler | 0:8c7de3096cac | 48 | #define reg_digit5a 0x6D |
lonesometraveler | 0:8c7de3096cac | 49 | #define reg_digit6a 0x6E |
lonesometraveler | 0:8c7de3096cac | 50 | #define reg_digit7a 0x6F |
lonesometraveler | 0:8c7de3096cac | 51 | |
Kentaro Okuda |
1:8936ddb97551 | 52 | |
Kentaro Okuda |
1:8936ddb97551 | 53 | class MAX6955 { |
lonesometraveler | 0:8c7de3096cac | 54 | public: |
lonesometraveler | 0:8c7de3096cac | 55 | /* |
lonesometraveler | 0:8c7de3096cac | 56 | * @param sda mbed pin for I2C SDA |
lonesometraveler | 0:8c7de3096cac | 57 | * @param scl mbed pin for I2C SCL |
lonesometraveler | 0:8c7de3096cac | 58 | * @param driver I2C device address |
lonesometraveler | 0:8c7de3096cac | 59 | */ |
Kentaro Okuda |
1:8936ddb97551 | 60 | MAX6955(PinName sda, PinName scl, char driver); |
Kentaro Okuda |
1:8936ddb97551 | 61 | |
Kentaro Okuda |
1:8936ddb97551 | 62 | /** |
Kentaro Okuda |
1:8936ddb97551 | 63 | * @brief This function writes command and data. |
Kentaro Okuda |
1:8936ddb97551 | 64 | * |
Kentaro Okuda |
1:8936ddb97551 | 65 | * @param command |
Kentaro Okuda |
1:8936ddb97551 | 66 | * MAX6955 command. |
Kentaro Okuda |
1:8936ddb97551 | 67 | * @param data |
Kentaro Okuda |
1:8936ddb97551 | 68 | * data to write. |
Kentaro Okuda |
1:8936ddb97551 | 69 | * |
Kentaro Okuda |
1:8936ddb97551 | 70 | * @return[int] result |
Kentaro Okuda |
1:8936ddb97551 | 71 | */ |
lonesometraveler | 0:8c7de3096cac | 72 | int write(char command, char data); |
Kentaro Okuda |
1:8936ddb97551 | 73 | |
Kentaro Okuda |
1:8936ddb97551 | 74 | |
Kentaro Okuda |
1:8936ddb97551 | 75 | /** |
Kentaro Okuda |
1:8936ddb97551 | 76 | * @brief This function writes string. |
Kentaro Okuda |
1:8936ddb97551 | 77 | * |
Kentaro Okuda |
1:8936ddb97551 | 78 | * @param pointer to buffer |
Kentaro Okuda |
1:8936ddb97551 | 79 | * |
Kentaro Okuda |
1:8936ddb97551 | 80 | * @return result |
Kentaro Okuda |
1:8936ddb97551 | 81 | */ |
lonesometraveler | 0:8c7de3096cac | 82 | int writeS(char* buffer); |
Kentaro Okuda |
1:8936ddb97551 | 83 | |
Kentaro Okuda |
1:8936ddb97551 | 84 | |
Kentaro Okuda |
1:8936ddb97551 | 85 | /** |
Kentaro Okuda |
1:8936ddb97551 | 86 | * @brief init function. |
Kentaro Okuda |
1:8936ddb97551 | 87 | * |
Kentaro Okuda |
1:8936ddb97551 | 88 | * @return result |
Kentaro Okuda |
1:8936ddb97551 | 89 | */ |
lonesometraveler | 0:8c7de3096cac | 90 | int init(void); |
lonesometraveler | 0:8c7de3096cac | 91 | |
lonesometraveler | 0:8c7de3096cac | 92 | private: |
lonesometraveler | 0:8c7de3096cac | 93 | I2C i2c_; |
lonesometraveler | 0:8c7de3096cac | 94 | char driver_; |
lonesometraveler | 0:8c7de3096cac | 95 | }; |
lonesometraveler | 0:8c7de3096cac | 96 | |
lonesometraveler | 0:8c7de3096cac | 97 | #endif |