Viele Funktionen

Dependencies:   mbed

Funktionen1.cpp

Committer:
Prettner67
Date:
2015-02-05
Revision:
0:50d2b4671eac

File content as of revision 0:50d2b4671eac:

#include "mbed.h"
#include "config.h"

void Move()
{
	MotorL_EN = MotorR_EN = 1;
	MotorL_FORWARD = MotorR_FORWARD = 1;
	wait_ms(300);
	MotorL_FORWARD = MotorR_FORWARD = 0;
	MotorL_EN = MotorR_EN = 0;
	
}

void Back()
{
	MotorL_EN = MotorR_EN = 1;
	MotorL_REVERSE = MotorR_REVERSE = 1;
	wait_ms(300);
	MotorL_REVERSE = MotorR_REVERSE = 0;
	MotorL_EN = MotorR_EN = 0;
	
}

void TurnRight()
{
	MotorL_EN = 1;
	MotorL_FORWARD = 1;
	wait_ms(100);
	MotorL_FORWARD = 0;
	MotorL_EN = 0;
	
}

void TurnLeft()
{
	MotorR_EN = 1;
	MotorR_FORWARD = 1;
	wait_ms(100);
	MotorR_FORWARD = 0;
	MotorR_EN = 0;
	
}

bool WaitUntilButtonPressed()
{
	char cmd[3];
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (0xFF))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
	
}

bool Start()
{
    DEBUG_PRINT("Debug level: %d", (int) DEBUG);
    i2c.frequency(40000);       

    while(WaitUntilButtonPressed()) {    }
    return true;
	
}

bool FrontIsClear()
{
    char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_FLL|BTN_FL|BTN_FM|BTN_FR|BTN_FRR))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
	
}

void RotateRight()
{
	MotorL_EN = MotorR_EN = 1;
	MotorL_FORWARD = MotorR_REVERSE = 1;
	wait_ms(2000);
	MotorL_FORWARD = MotorR_REVERSE = 0;
	MotorL_EN = MotorR_EN = 0;
	
}

void RotateLeft()
{
	MotorL_EN = MotorR_EN = 1;
	MotorR_FORWARD = MotorL_REVERSE = 1;
	wait_ms(2000);
	MotorR_FORWARD = MotorL_REVERSE = 0;
	MotorL_EN = MotorR_EN = 0;
	
}

void MoveTime(int c)
{
	MotorL_EN = MotorR_EN = 1;
	MotorL_FORWARD = MotorR_FORWARD = 1;
	wait_ms(c);
	MotorL_FORWARD = MotorR_FORWARD = 0;
	MotorL_EN = MotorR_EN = 1;
	
}

void BackTime(int c)
{
	MotorL_EN = MotorR_EN = 1;
	MotorL_REVERSE = MotorR_REVERSE = 1;
	wait_ms(c);
	MotorL_EN = MotorR_EN = 0;
	MotorL_REVERSE = MotorR_REVERSE = 0;
	
}

void TurnRightTime(int c)
{
	MotorL_EN = 1;
	MotorL_FORWARD = 1;
	wait_ms(c);
	MotorL_FORWARD = 0;
	MotorL_EN = 0;
	
}

void TrnLeftTime(int c)
{
	MotorR_EN = 1;
	MotorR_FORWARD = 1; 
	wait_ms(c);
	MotorR_FORWARD = 0;
	MotorR_EN = 0;
	
}

void RotateRightTime(int c)
{
	MotorL_EN = MotorR_EN = 1;
	MotorL_FORWARD = MotorR_REVERSE = 1;
	wait_ms(c);
	MotorL_FORWARD = MotorR_REVERSE = 0;
	MotorL_EN = MotorR_EN = 0;
	
}

void RotateLeftTime(int c)
{
	MotorR_EN = MotorL_EN = 1;
	MotorR_FORWARD = MotorL_REVERSE = 1;
	wait_ms(c);
	MotorR_FORWARD = MotorL_REVERSE = 0; 
	MotorL_EN = MotorR_EN = 0;
	
}

bool BackIsClear()
{
    char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_BL|BTN_BM|BTN_BR))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
	
}

bool ButtonBackLeft()
{
    char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_BL))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
	
}

bool ButtonBackMid()
{
	char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_BM))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
}

bool ButtonBackRight()
{
	char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_BR))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
}

bool ButtonFrontLeftLeft()
{
	char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_FLL))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
}

bool ButtonFrontLeft()
{
	char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_FL))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
}

bool ButtonFrontMid()
{
	char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_FM))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
}

bool ButtonFrontRight()
{
	char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_FR))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
}

bool ButtonFrontRightRight()
{
	char cmd[3];    
    int16_t btns;
    bool wert;

    cmd[0] = 0x06;
    cmd[1] = 0x00;
    i2c.write(addr, cmd, 2); 

    cmd[0]=0x01;
    i2c.write(addr, cmd, 1);
    i2c.read(addr|1, cmd, 1);
    btns = cmd[0];
    if( btns & (BTN_FRR))
        wert = false;
    else
        wert = true;
    DEBUG_PRINT("\right\nWERT: %d \right\n", wert);
    return wert;
}

void TurnLedOn(int16_t led)
{
    char cmd[3];

    cmd[0] = 0x02;
    cmd[1] = ~led;
    i2c.write(addr, cmd, 2);
    wait(0.5);
}

void TurnLedOff(int16_t led)
{
    char cmd[3];

    cmd[0] = 0x02;
    cmd[1] = ~led;
    i2c.write(addr, cmd, 2);
    wait(0.5);
}

bool MoveTicks(int c)
{
	int count = 0, left = 0, right = 0;
	
	MotorL_EN = MotorR_EN = 1;
	
	while(c--)
	{
		MotorL_FORWARD = MotorR_FORWARD = 1;
		
		if(SensorL == 1)
			left++;
		if(SensorR == 1)
			right++;
		
		count++;
		wait_ms(10);
	}
	
	MotorL_FORWARD = MotorR_FORWARD = 0;
	MotorL_EN = MotorR_EN = 0;
	
	return true;
	
}

bool BackTicks(int c)
{
	int count = 0, left = 0, right = 0;
	
	MotorL_EN = MotorR_EN = 1;
	
	while(c--)
	{
		MotorL_REVERSE = MotorR_REVERSE = 1;
		
		if(SensorL == 1)
			left++;
		if(SensorR == 1)
			right++;
		
		count++;
		wait_ms(10);
	}
	
	MotorL_REVERSE = MotorR_REVERSE = 0;
	MotorL_EN = MotorR_EN = 0;
	
	return true;
	
}

bool MotorRightMoveTicks(int c)
{
	int count = 0, right = 0;
	
	MotorR_EN = 1;
	
	while(c--)
	{
		MotorR_FORWARD = 1;
		
		if(SensorR == 1)
			right++;
		
		count++;
		wait_ms(10);
	}
	
	MotorR_FORWARD = 0;
	MotorR_EN = 0;
	
	return true;
	
}

bool MotorRightBackTicks(int c)
{
	int count = 0, right = 0;
	
	MotorR_EN = 1;
	
	while(c--)
	{
		MotorR_REVERSE = 1;
		
		if(SensorR == 1)
			right++;
		
		count++;
		wait_ms(10);
	}
	
	MotorR_REVERSE = 0;
	MotorR_EN = 0;
	
	return true;
	
}

bool MotorLeftMoveTicks(int c)
{
	int count = 0, right = 0;
	
	MotorL_EN = 1;
	
	while(c--)
	{
		MotorL_FORWARD = 1;
		
		if(SensorR == 1)
			right++;
		
		count++;
		wait_ms(10);
	}
	
	MotorL_FORWARD = 0;
	MotorL_EN = 0;
	
	return true;
	
}

bool MotorLeftBackTicks(int c)
{
	int count = 0, right = 0;
	
	MotorL_EN = 1;
	
	while(c--)
	{
		MotorL_REVERSE = 1;
		
		if(SensorR == 1)
			right++;
		
		count++;
		wait_ms(10);
	}
	
	MotorL_REVERSE = 0;
	MotorL_EN = 0;
	
	return true;
	
}