B17 fährt ein 4 ECK mit LICHT (DigitalOut & wait)

Dependencies:   mbed

Fork of _B15_T4_Motor by Gottfried Enenkel

main.cpp

Committer:
Enenkel
Date:
2015-01-26
Revision:
0:a8a0195ed7dc
Child:
1:0f7c167a4f97

File content as of revision 0:a8a0195ed7dc:

/***********************************
name:   BERTL14_I2C_TEST
author: Enenkel modifizert von  Wolfgang Raimann
description:
    Die Taster vom I2C Expander werden direkt auf die LED's des Expander geschalten
***********************************/
 
#include "mbed.h"
I2C i2c(p28, p27);        // die Adressen des I2C Busses am uP 
                          // p28 -> SDA
                          // p27 -> SCL 
int main() {
    char btn = 0;
    //     ****  Config PCA9555 I0 as output *******
    i2c.start();
       i2c.write(0x40);   // Adresse des PCA9555 = 40 
                          // das letzte Bit = 0 -> schreiben  0040 0000
       i2c.write(0x06);   // Befehl für das IO Port 0 -> siehe SCHEMA des PCA9555
       i2c.write(0x00);   // Schalte alle Pins des Ports als OUTPUT
    i2c.stop();    
    
    while(1) {
        // Einlesen der Taster und speichern unter btn
        i2c.start();
                            /* Das letzte Bit der Adresse entscheidet 
                               ob geschrieben oder gelesen wird. 
                               0 => schreiben;   1 => lesen  */
        i2c.write(0x40);    //Adresse & schreiben   0100 0000 
        i2c.write(0x01);    //aktivate Port 1        
       
        i2c.start();
          i2c.write(0x41);  // Adresse & LESEN    0100 0001  
          btn = i2c.read(0);// Einlesen des Ports 1 und speichern unter btn
        i2c.stop();
        
        // Schreiben auf Port 0 und damit auf die LED's
        i2c.start();
          i2c.write(0x40);  // Adresse & schreiben
          i2c.write(0x02);  // 
          i2c.write(~btn);  // schriebn auf Port 0 den INVERSEN Wert von btn
        i2c.stop();
    }
}