LIB Bertl 2041
Fork of I2C_LEDs by
I2C.cpp@1:97a7e9e9a229, 2016-04-24 (annotated)
- Committer:
- Drohne
- Date:
- Sun Apr 24 08:29:05 2016 +0000
- Revision:
- 1:97a7e9e9a229
- Parent:
- 0:d7de08989175
Bulme bertl 14 lib
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Drohne | 1:97a7e9e9a229 | 1 | #include "I2C.h" |
hemmer_matthias | 0:d7de08989175 | 2 | #include "mbed.h" |
hemmer_matthias | 0:d7de08989175 | 3 | |
Drohne | 1:97a7e9e9a229 | 4 | I2C i2c(p28, p27); // (SDA, SCL) |
hemmer_matthias | 0:d7de08989175 | 5 | |
Drohne | 1:97a7e9e9a229 | 6 | void init(){ |
Drohne | 1:97a7e9e9a229 | 7 | char data[2]; |
Drohne | 1:97a7e9e9a229 | 8 | |
Drohne | 1:97a7e9e9a229 | 9 | i2c.frequency(FREQUENCY); |
Drohne | 1:97a7e9e9a229 | 10 | |
Drohne | 1:97a7e9e9a229 | 11 | // port 0 = LEDs |
Drohne | 1:97a7e9e9a229 | 12 | |
Drohne | 1:97a7e9e9a229 | 13 | // declaration of polarity inversion port 0 |
Drohne | 1:97a7e9e9a229 | 14 | data[0] = Invers0; |
Drohne | 1:97a7e9e9a229 | 15 | data[1] = 0xFF; // Input |
Drohne | 1:97a7e9e9a229 | 16 | i2c.write(Addrs, data, 2); |
Drohne | 1:97a7e9e9a229 | 17 | |
Drohne | 1:97a7e9e9a229 | 18 | // declaration of polarity inversion port 1 |
Drohne | 1:97a7e9e9a229 | 19 | data[0] = Invers1; |
Drohne | 1:97a7e9e9a229 | 20 | data[1] = 0x00; // Output |
Drohne | 1:97a7e9e9a229 | 21 | i2c.write(Addrs, data, 2); |
Drohne | 1:97a7e9e9a229 | 22 | |
Drohne | 1:97a7e9e9a229 | 23 | // declaration of the Configuration port 0 |
Drohne | 1:97a7e9e9a229 | 24 | data[0] = Config0; |
Drohne | 1:97a7e9e9a229 | 25 | data[1] = 0x00; // Input |
Drohne | 1:97a7e9e9a229 | 26 | i2c.write(Addrs, data, 2); |
Drohne | 1:97a7e9e9a229 | 27 | |
Drohne | 1:97a7e9e9a229 | 28 | // declaration of the Configuration port 1 |
Drohne | 1:97a7e9e9a229 | 29 | data[0] = Config1; |
Drohne | 1:97a7e9e9a229 | 30 | data[1] = 0xFF; // Output |
Drohne | 1:97a7e9e9a229 | 31 | i2c.write(Addrs, data, 2); |
Drohne | 1:97a7e9e9a229 | 32 | } |
hemmer_matthias | 0:d7de08989175 | 33 | |
Drohne | 1:97a7e9e9a229 | 34 | void leds(unsigned char leds){ |
Drohne | 1:97a7e9e9a229 | 35 | char data[2]; |
Drohne | 1:97a7e9e9a229 | 36 | |
Drohne | 1:97a7e9e9a229 | 37 | data[0] = Output0; |
Drohne | 1:97a7e9e9a229 | 38 | data[1] = ~leds; // look PCA9555 datasheet |
Drohne | 1:97a7e9e9a229 | 39 | i2c.write(Addrs, data, 2); |
Drohne | 1:97a7e9e9a229 | 40 | } |
hemmer_matthias | 0:d7de08989175 | 41 | |
Drohne | 1:97a7e9e9a229 | 42 | unsigned char buttons(){ |
Drohne | 1:97a7e9e9a229 | 43 | char data[1]; |
Drohne | 1:97a7e9e9a229 | 44 | |
Drohne | 1:97a7e9e9a229 | 45 | data[0] = Input1; |
Drohne | 1:97a7e9e9a229 | 46 | i2c.write(Addrs, data, 1, false); // don't stop, becouse we want to read from Input1 the buttons |
Drohne | 1:97a7e9e9a229 | 47 | i2c.read(Addrs, data, 1, true); |
Drohne | 1:97a7e9e9a229 | 48 | |
Drohne | 1:97a7e9e9a229 | 49 | return ((unsigned char) data[0]); |
Drohne | 1:97a7e9e9a229 | 50 | |
Drohne | 1:97a7e9e9a229 | 51 | } |