This example positions a lit LED in the I2C LED array using the rotary encoder

Dependencies:   mbed

PCA9532.h

Committer:
chris
Date:
2010-03-02
Revision:
0:498b9b4a7bb9

File content as of revision 0:498b9b4a7bb9:

/* PCA9532 
 * (c) 2009, cstyles
 */
 
#ifndef PCA9532_H
#define PCA9532_H

#include "mbed.h"

// register names
#define PCA9532_REG_INPUT0 0
#define PCA9532_REG_INPUT1 1
#define PCA9532_REG_PSC0 2
#define PCA9532_REG_PWM0 3
#define PCA9532_REG_PSC1 4
#define PCA9532_REG_PWM1 5
#define PCA9532_REG_LS0 6
#define PCA9532_REG_LS1 7
#define PCA9532_REG_LS2 8
#define PCA9532_REG_LS3 9

#define PCA9532_MODE_CLEAR 0
#define PCA9532_MODE_SET 1
#define PCA9532_MODE_PWM0 2
#define PCA9532_MODE_PWM1 3





class PCA9532 {

public:

    PCA9532(PinName sda, PinName scl, int addr);
          
    void write (int leds);
          
    void set (int leds);
    void clear (int leds);
    void pwm0 (int leds);
    void pwm1 (int leds);
    
    void duty0 (float d);
    void duty1 (float d);
    
    void period0 (float t);
    void period1 (float t);
        
protected:

    void _write(int reg, int data);
    int _read(int reg);

    void _rmw(int led, int mode);    
    
    int _addr;
    
    I2C _i2c;    

};


#endif