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

Adafruit_IS31FL3731.h

Committer:
DVLevine
Date:
2018-03-17
Revision:
3:0da61b470b86
Parent:
2:de1066d7f78f

File content as of revision 3:0da61b470b86:

#ifndef _ADAFRUIT_IS31FL3731_H_
#define _ADAFRUIT_IS31FL3731_H_

#include "mbed.h"
#include "Adafruit_GFX.h"
#include "I2Cdev.h"


#define ISSI_ADDR_DEFAULT 0x74

#define ISSI_REG_CONFIG  0x00
#define ISSI_REG_CONFIG_PICTUREMODE 0x00
#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08
#define ISSI_REG_CONFIG_AUDIOPLAYMODE 0x18

#define ISSI_CONF_PICTUREMODE 0x00
#define ISSI_CONF_AUTOFRAMEMODE 0x04
#define ISSI_CONF_AUDIOMODE 0x08

#define ISSI_REG_PICTUREFRAME  0x01

#define ISSI_REG_SHUTDOWN 0x0A
#define ISSI_REG_AUDIOSYNC 0x06

#define ISSI_COMMANDREGISTER 0xFD
#define ISSI_BANK_FUNCTIONREG 0x0B    // helpfully called 'page nine'

#define I2C_SDA P3_4//D14 
#define I2C_SCL P3_5//D15  

//I2Cdev* myDevI2C = new I2Cdev(); 

class Adafruit_IS31FL3731 : public Adafruit_GFX {
 public:
  Adafruit_IS31FL3731(uint8_t x=16, uint8_t y=9):Adafruit_GFX(x,y){
      I2Cdev* myDevI2C = new I2Cdev(); 
      myI2C = myDevI2C;
      };//, I2Cdev* theI2C=myDevI2C); 
  bool begin(uint8_t addr = ISSI_ADDR_DEFAULT);
  I2Cdev* myI2C;
  virtual void drawPixel(int16_t x, int16_t y, uint16_t color);
  void clear(void);

  void setLEDPWM(uint8_t lednum, uint8_t pwm, uint8_t bank = 0);
  void audioSync(bool sync);
  void setFrame(uint8_t b);
  void displayFrame(uint8_t frame);


 protected:
  void selectBank(uint8_t bank);
  void writeRegister8(uint8_t bank, uint8_t reg, uint8_t data);
  uint8_t readRegister8(uint8_t bank, uint8_t reg);
  uint8_t _i2caddr, _frame;
};

class Adafruit_IS31FL3731_Wing : public Adafruit_IS31FL3731 {
 public:
  Adafruit_IS31FL3731_Wing():Adafruit_IS31FL3731(16,9){
      //myboss = mainboss;
      };//I2Cdev* theI2C);
  virtual void drawPixel(int16_t x, int16_t y, uint16_t color);
};



#endif