LIB Bertl 2041

Fork of I2C_LEDs by Matthias Hemmer

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?

UserRevisionLine numberNew 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 }