MAX6955 LED driver
Diff: MAX6955.cpp
- Revision:
- 1:8936ddb97551
- Parent:
- 0:8c7de3096cac
- Child:
- 2:f6c4ed9cbf0e
--- a/MAX6955.cpp Tue Aug 02 14:10:14 2011 +0000 +++ b/MAX6955.cpp Sun Jun 24 09:40:19 2018 -0400 @@ -1,8 +1,13 @@ +/** + * @file MAX6955.cpp + */ + #include "MAX6955.h" MAX6955::MAX6955(PinName sda, PinName scl, char driver): i2c_(sda, scl), driver_(driver){} -int MAX6955::write(char command, char data){ + +int MAX6955::write(char command, char data) { char i2cData[2]; i2cData[0] = command; i2cData[1] = data; @@ -11,13 +16,23 @@ return result; } -int MAX6955::writeS(char* buffer){ - int result = i2c_.write(driver_, (char *) buffer, 8); +int MAX6955::writeS(char* buffer) { + int i; + char i2cData[9]; + i2cData[0] = 0x20; // first digit + for (i = 0; i < 8; i++) { + if (buffer[i] < 32 || buffer[i] > 126) { // make sure its printable + i2cData[i+1] = 32; // if not, replace it with "space" + } else { + i2cData[i+1] = buffer[i]; + } + } + int result = i2c_.write(driver_, (char *) i2cData, 9); wait(0.07); return result; } -int MAX6955::init(){ +int MAX6955::init(void) { int result = 0; result = result + write(reg_decodeMode, 0x00); result = result + write(reg_scanLimit, 0x07);