MODE1 = 0x00
MODE2 = 0x01
PWM_BASE = 0x06
PRESCALE = 0xFE
M1_SLEEP = 1<<4
M1_AI = 1<<5
M1_RESTART = 1<<7
M2_OUTDRV = 1<<2
M2_OUTNE_1 = 1<<1
M2_OUTNE_0 = 1<<0
def __init__(self, slave=0x40, frequency=50):
I2C.__init__(self, toint(slave))
PWM.__init__(self, 16, 12, toint(frequency))
self.VREF = 0
self.prescale = int(25000000.0/((2**12)*self.frequency))
self.mode2 = self.M2_OUTDRV | self.M2_OUTNE_0
self.writeRegister(self.MODE2, self.mode2)
self.mode1 = self.M1_RESTART | self.M1_AI
self.writeRegister(self.MODE1, self.M1_SLEEP)
self.writeRegister(self.PRESCALE, self.prescale)
time.sleep(0.01)
self.writeRegister(self.MODE1, self.mode1)