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

Dependencies:   mbed

main.cpp

Committer:
Enenkel
Date:
2015-05-31
Revision:
3:bff0f9cba269
Parent:
2:040855fee6fa
Child:
4:a33d2e24765a

File content as of revision 3:bff0f9cba269:

/***********************************
name:   BERTL15_Test1
author: Enenkel 
description:  TEST1 
    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 
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)            // 4 Mal durch die Schleife laufen   
     {
     LedD10=1;            // LED D10 ON  
     wait (0.5);          // 0.5 sec warten  
     LedD10=0;            // LED D10 AUS
     LedD11=1;            // LED D11 EIN   
     wait (0.5);
     LedD11=0;
     LedD12=1;
     wait (0.5);
     LedD12=0;
     LedD13=1;
     wait (0.5);
     LedD13=!LedD13;       // ! Invertieren 1 wird 0  und 0 wird 1 
     a=a++;                // a = a+1 -> in C besser a++
     }
   

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