BertlCard

Dependencies:   BertlLib mbed

BertlCard.cpp

Committer:
hollegha2
Date:
2015-10-14
Revision:
0:46edd470c018
Child:
1:69daffc2b325

File content as of revision 0:46edd470c018:


#include "mbed.h"
#include "Serial_HL.h"
#include "Bertl14.h"
#include "BertlObjects.h"

SerialBLK pc(USBTX, USBRX);
// SerialBLK pc(p9, p10); // BlueTooth
SvProtocol ua0(&pc);

//              main=2^0  LS    ENC 2^2
BusOut boardPow(p30,      P1_6, P1_7);

void CommandHandler();

float gForw=0.0, gTurn=0.0;

int main(void)
{
    InitBertl();
    pex.useISR=0;
    leds=0;
    pex.ClearLeds();
    // pex.SetLedPort(LED_FL1|LED_FR1);
    pex.SetLedPort(LED_BR2|LED_BL1);
    pc.format(8,SerialBLK::None,1);
    pc.baud(115200); // 115200
    boardPow = 1;
    ua0.SvMessage("BertlKart_5"); // Meldung zum PC senden

    Timer stw;
    stw.start();
    while(1) {
        CommandHandler();
        if( (stw.read_ms()>10) ) { // 100Hz
            // dieser Teil wird mit 100Hz aufgerufen
            stw.reset();
            if( ua0.acqON ) {
                // nur wenn vom PC aus das Senden eingeschaltet wurde
                // wird auch etwas gesendet
                ua0.WriteSvI16(1, gForw*100);
                ua0.WriteSvI16(2, gTurn*100);
            }
        }
    }
    return 1;
}

void CommandHandler()
{
    uint8_t cmd;
    // Fragen ob überhaupt etwas im RX-Reg steht
    if( !pc.IsDataAvail() )
        return;
    // wenn etwas im RX-Reg steht
    // Kommando lesen
    cmd = ua0.GetCommand();

    if( cmd==2 ) {
        if( ua0.ReadI16() )
            pex.SetLedPort(LED_FL1|LED_FR1);
        else
            pex.ClearLeds();
    }
    if( cmd==4 ) {
        mL.SetPow(ua0.ReadF());
        mR.SetPow(ua0.ReadF());
    }
    if( cmd==5 ) {
        gForw = ua0.ReadF();
        // gForw = -ua0.ReadF(); // Wetz
        mL.SetPow(gForw+gTurn);
        mR.SetPow(gForw-gTurn);
    } else if( cmd==6 ) {
        gTurn = ua0.ReadF();
        // gTurn = -ua0.ReadF(); // Wetz
        mL.SetPow(gForw+gTurn);
        mR.SetPow(gForw-gTurn);
    }
}