MAX6955 LED driver

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?

UserRevisionLine numberNew 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