Testet BERTL17 zuerst die LED's dann nach Tasterdruck jeweils die dazugehörigen LED

Dependencies:   mbed

main.cpp

Committer:
Enenkel
Date:
2015-05-27
Revision:
2:040855fee6fa
Parent:
1:628da1b465a4
Child:
3:bff0f9cba269

File content as of revision 2:040855fee6fa:

/***********************************
name:   BERTL15_Test1
author: Enenkel 
description:
    D1_D4 Lauflicht
***********************************/
#include "mbed.h"

// 3,3 und 3,7V Schiene
DigitalOut LedD10 (P1_8);    // LED D10 bis D13 IO Definieren
DigitalOut LedD11 (P1_9);
DigitalOut LedD12 (P1_10);
DigitalOut LedD13 (P1_11);

I2C i2c(p28, p27);           // die Adressen des I2C Busses am uP 
                             // p28 -> SDA
                             // p27 -> SCL 

// 5V Schiene & Motor Spannung
 DigitalOut Von (P1_2);         // SPANNUNG 10V & 5V 
// DigitalOut LedBLUE(P1_28);   // Blaue LED unter dem B15
// DigitalOut LedBL (P1_24);    // RGB LED
// DigitalOut LedGR (P1_25);    //
// DigitalOut LedRT (P1_23);    //  RT

double counter1;
int a;


int main() {
    Von=0;                // muss 0 sein, sonst leuchtet RGB !!!  
    a=1;
    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();    
 
   // D10-D13 Lauflicht
   a=0;
   while (a<4) 
     {
     LedD10=1;
     wait (0.5);
     LedD10=0;
     LedD11=1;
     wait (0.5);
     LedD11=0;
     LedD12=1;
     wait (0.5);
     LedD12=0;
     LedD13=1;
     wait (0.5);
     LedD13=!LedD13;
     a=a++;
     }
   

    //Taster und LED Test
    while(1) {
        counter1=1;
        
        while(counter1<5000) {
            counter1=counter1++;
        
            // 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();
        }
   } 
   }