Projekt TEINF

Dependencies:   mbed

main.cpp

Committer:
Reichi19
Date:
2018-11-29
Revision:
3:ccacc13998da
Parent:
2:23fc7c5e314a

File content as of revision 3:ccacc13998da:

#include "mbed.h"

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
BusOut led (LED1,LED2,LED3,LED4);
InterruptIn sw1(p14);
InterruptIn sw2(p15);

void flipper(void);
void ON(void);
void OFF(void);
void IDEL(void);
void sw1Rise(void);
bool checker(void);
bool volatile sw1Pressed;


int counter;
int i = 0;
enum Status{ST_ON = 0, ST_OFF};
Status volatile status;

int main(void)
{
    sw1.rise(&sw1Rise);
    status = ST_ON;
    sw1Pressed = 0;
    counter =0;
    led1=0, led2=0, led3=0, led4=0;
    
    while(1)
    {
        switch(status)
        {
            case ST_ON:ON()         ; break;
            case ST_OFF:OFF()       ; break;
        }
    }
}

void flipper(void)
{
    if(counter == 1)
    { 
        int i;
        i++;
        
        led = i;
        
    }
    counter ++;
}



bool checker(void)
{
 
 if(sw1Pressed == 1)
    {
        printf("void checker\n");
        sw1Pressed = false;
        return true;
    }
    
    
    return false;
}

void sw1Rise(void)
{   
    printf("sw1Rise\n");
    
    if(status == ST_ON || status == ST_OFF) sw1Pressed = 1;
    wait_ms(200);
}



void OFF(void)
{
    printf("void OFF\n");
    led =0;
    
    while(1)
    {
        if (checker() == true)
        {
            status = ST_ON;
            return;
        }
    }
}

void ON(void)
{

    led = 15;
    wait_ms(500);
    led = 3;

    
    
    printf("void ON\n");
     
     while(1)
    {
         if (checker() == true)
        {
            flipper();
            status = ST_OFF;
            
            return;
            
        }

    }
}