Gruppe_A

Dependencies:   mbed

Fork of GruppeA by Andreas Schögler

GruppeA.cpp

Committer:
AndreasSchoegler
Date:
2015-06-16
Revision:
1:bb1a9447ce78
Parent:
0:74db8ce1771f

File content as of revision 1:bb1a9447ce78:

#include "mbed.h"


InterruptIn iiUp(p15);
Timer timer1;
int los=0;
int b=0;
int text_neu = 0;

BusOut doLeds(LED1,LED2,LED3,LED4);

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);


// global vars and objects

Serial pc(USBTX, USBRX); // tx, rx    ; is default !!! (9600, 8N1)
char recChar=0;
bool recFlag=false;
char recArr[20];
int index=0;

// functions
void flushSerialBuffer() { 
    while (pc.readable()) { 
        pc.getc(); 
    } 
}

void error()
{
    
    
}

    
void readData() {
    
    //if(los>=1)
    //{
    recChar = pc.getc();
    recArr[index] = recChar;
    index++;
    if ((recChar == '\r') || (index>=19)) {
        recFlag = true;
        recArr[index] = 0;
        
        float t = timer1.read_ms();
        pc.printf(" - That's the input: %f L= %d %s\r\n", t,index,recArr); 
        if(recArr[0] == 'A' || recArr[0] == 'a')
        {
           pc.printf("Aus");
           doLeds=0;
           
           
             
        }
        else if(recArr[0] == 'e' || recArr[0] == 'E')
        {
           pc.printf("ein");
           doLeds=15;
           
           
             
        }
        
        
        else if(recArr[0] == 'L' && recArr[3]== 'E')
        {
            
            switch (recArr[1]) 
            {
                case '1':
                led1 =1;
                 break;
                
                case '2':
                 led2 =1;
                  break;
                
                case '3':
                 led3 =1;
                  break;
                
                case '4':
                 led4 =1;
                  break;
                  
               default: 
               // fehlerausgabe
               break;
            
            }
            
            
  
        }
        
        
        else if(recArr[0] == 'L' && recArr[3]== 'A')
        {
            
            switch (recArr[1]) 
            {
                case '1':
                led1 =0;
                 break;
                
                case '2':
                 led2 =0;
                  break;
                
                case '3':
                 led3 =0;
                  break;
                
                case '4':
                 led4 =0;
                  break;
                 
               default: 
               // fehlerausgabe
               break;
            
            }
            
            
  
        }
        else
        {
         // Fehlerfall   
            
        }
        
        
        
        
        
        
        index = 0; 
        timer1.stop();
        timer1.reset();
        flushSerialBuffer();
        los=0;
        b=0;
        
    //}
 }
}
 
 void SendText()
 {
    
   pc.printf("Geben Sie ein Wort mit mindestens 5 und maximal 10 ein:"); 
   timer1.start(); 
   los=1;   
    
 }
    
int main() {
    pc.baud(115200);
    //pc.baud(38400);
    pc.format(8, SerialBase::Odd, 2);
    led2 = 1;

    flushSerialBuffer();
    if(b>=0)
    {
    pc.printf("Programm Andreas Schoegler Gruppe2 \r\n");
     b=1;
    }
    
    pc.attach(&readData);
    
    flushSerialBuffer();
    if(text_neu>=0)
    {
    pc.printf("Bitte Steuer_string eingeben \r\n");
    text_neu=1;
    }
    
    
    //iiUp.rise(&SendText);
    
    
    
    while(1) {
        if (recFlag) {
            flushSerialBuffer();
//            pc.printf(" - That's the input: %s\r\n", recArr);  // non reantrant function
            recFlag = false;
            //led2 = !led2;
        }
    }
}