Port of the Adafruit_IS31FL3731 library for Arduino. Enables control of the feather Charliewing LED Matrix peripheral board. Makes use of the I2Cdev library for I2C.

Dependencies:   I2Cdev_MAX32630FTHR

Defaulty uses pinmap for the Maxim 32630FTHR Pegasus board. For a different board, change pin definitions in I2Cdev.h

Committer:
DVLevine
Date:
Sat Mar 17 23:15:19 2018 +0000
Revision:
3:0da61b470b86
Parent:
2:de1066d7f78f
Cleaned up comments a bit. Removed old commend out code from arduino port.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DVLevine 2:de1066d7f78f 1 #ifndef _ADAFRUIT_IS31FL3731_H_
DVLevine 0:9a73d45a17de 2 #define _ADAFRUIT_IS31FL3731_H_
DVLevine 0:9a73d45a17de 3
DVLevine 0:9a73d45a17de 4 #include "mbed.h"
DVLevine 0:9a73d45a17de 5 #include "Adafruit_GFX.h"
DVLevine 0:9a73d45a17de 6 #include "I2Cdev.h"
DVLevine 0:9a73d45a17de 7
DVLevine 0:9a73d45a17de 8
DVLevine 0:9a73d45a17de 9 #define ISSI_ADDR_DEFAULT 0x74
DVLevine 0:9a73d45a17de 10
DVLevine 0:9a73d45a17de 11 #define ISSI_REG_CONFIG 0x00
DVLevine 0:9a73d45a17de 12 #define ISSI_REG_CONFIG_PICTUREMODE 0x00
DVLevine 0:9a73d45a17de 13 #define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08
DVLevine 0:9a73d45a17de 14 #define ISSI_REG_CONFIG_AUDIOPLAYMODE 0x18
DVLevine 0:9a73d45a17de 15
DVLevine 0:9a73d45a17de 16 #define ISSI_CONF_PICTUREMODE 0x00
DVLevine 0:9a73d45a17de 17 #define ISSI_CONF_AUTOFRAMEMODE 0x04
DVLevine 0:9a73d45a17de 18 #define ISSI_CONF_AUDIOMODE 0x08
DVLevine 0:9a73d45a17de 19
DVLevine 0:9a73d45a17de 20 #define ISSI_REG_PICTUREFRAME 0x01
DVLevine 0:9a73d45a17de 21
DVLevine 0:9a73d45a17de 22 #define ISSI_REG_SHUTDOWN 0x0A
DVLevine 0:9a73d45a17de 23 #define ISSI_REG_AUDIOSYNC 0x06
DVLevine 0:9a73d45a17de 24
DVLevine 0:9a73d45a17de 25 #define ISSI_COMMANDREGISTER 0xFD
DVLevine 0:9a73d45a17de 26 #define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine'
DVLevine 0:9a73d45a17de 27
DVLevine 0:9a73d45a17de 28 #define I2C_SDA P3_4//D14
DVLevine 0:9a73d45a17de 29 #define I2C_SCL P3_5//D15
DVLevine 0:9a73d45a17de 30
DVLevine 0:9a73d45a17de 31 //I2Cdev* myDevI2C = new I2Cdev();
DVLevine 0:9a73d45a17de 32
DVLevine 0:9a73d45a17de 33 class Adafruit_IS31FL3731 : public Adafruit_GFX {
DVLevine 0:9a73d45a17de 34 public:
DVLevine 0:9a73d45a17de 35 Adafruit_IS31FL3731(uint8_t x=16, uint8_t y=9):Adafruit_GFX(x,y){
DVLevine 0:9a73d45a17de 36 I2Cdev* myDevI2C = new I2Cdev();
DVLevine 0:9a73d45a17de 37 myI2C = myDevI2C;
DVLevine 0:9a73d45a17de 38 };//, I2Cdev* theI2C=myDevI2C);
DVLevine 0:9a73d45a17de 39 bool begin(uint8_t addr = ISSI_ADDR_DEFAULT);
DVLevine 0:9a73d45a17de 40 I2Cdev* myI2C;
DVLevine 3:0da61b470b86 41 virtual void drawPixel(int16_t x, int16_t y, uint16_t color);
DVLevine 0:9a73d45a17de 42 void clear(void);
DVLevine 0:9a73d45a17de 43
DVLevine 0:9a73d45a17de 44 void setLEDPWM(uint8_t lednum, uint8_t pwm, uint8_t bank = 0);
DVLevine 0:9a73d45a17de 45 void audioSync(bool sync);
DVLevine 0:9a73d45a17de 46 void setFrame(uint8_t b);
DVLevine 0:9a73d45a17de 47 void displayFrame(uint8_t frame);
DVLevine 0:9a73d45a17de 48
DVLevine 0:9a73d45a17de 49
DVLevine 0:9a73d45a17de 50 protected:
DVLevine 0:9a73d45a17de 51 void selectBank(uint8_t bank);
DVLevine 0:9a73d45a17de 52 void writeRegister8(uint8_t bank, uint8_t reg, uint8_t data);
DVLevine 0:9a73d45a17de 53 uint8_t readRegister8(uint8_t bank, uint8_t reg);
DVLevine 0:9a73d45a17de 54 uint8_t _i2caddr, _frame;
DVLevine 0:9a73d45a17de 55 };
DVLevine 0:9a73d45a17de 56
DVLevine 0:9a73d45a17de 57 class Adafruit_IS31FL3731_Wing : public Adafruit_IS31FL3731 {
DVLevine 0:9a73d45a17de 58 public:
DVLevine 0:9a73d45a17de 59 Adafruit_IS31FL3731_Wing():Adafruit_IS31FL3731(16,9){
DVLevine 0:9a73d45a17de 60 //myboss = mainboss;
DVLevine 0:9a73d45a17de 61 };//I2Cdev* theI2C);
DVLevine 3:0da61b470b86 62 virtual void drawPixel(int16_t x, int16_t y, uint16_t color);
DVLevine 0:9a73d45a17de 63 };
DVLevine 0:9a73d45a17de 64
DVLevine 0:9a73d45a17de 65
DVLevine 0:9a73d45a17de 66
DVLevine 0:9a73d45a17de 67 #endif