2014 sift / Mbed 2 deprecated TVDctrller2017_brdRev1_PandA

Dependencies:   mbed

Fork of TVDctrller2017_brdRev1_ver6 by 2014 sift

main.cpp

Committer:
sift
Date:
2017-06-29
Revision:
24:1de0291bc5eb
Parent:
21:bbf2ad7e6602
Child:
25:c21d35c7f0de

File content as of revision 24:1de0291bc5eb:

#include "mbed.h"
#include "TVDCTRL.h"
#include "Steering.h"
#include "MCP4922.h"

Serial pc(USBTX, USBRX); // tx, rx

////////////////////////////////////////
//IO宣言
SPI spi(p5,p6,p7);
MCP4922 mcp(p5,p7,p8);      // MOSI, SCLK, CS
DigitalOut ioExpCs(p9);
DigitalOut indicatorLed(p10);
DigitalOut shutDown(p11);
DigitalOut brakeSignal(p12);
DigitalOut sdState(p13);
DigitalIn RTDSW(p14);
AnalogIn apsS(p15);         //"S"econdary
AnalogIn apsP(p16);         //"P"rimary
AnalogIn brake(p17);
AnalogOut STR2AN(p18);
DigitalIn SLCTSW[3] = {p19, p20, p21};
InterruptIn rightMotorPulse(p22);
InterruptIn leftMotorPulse(p23);
InterruptIn rightTirePulse1(p24);
InterruptIn rightTirePulse2(p25);
InterruptIn leftTirePulse1(p26);
InterruptIn leftTirePulse2(p27);
DigitalOut WDT(p28);
CAN can(p30, p29);

DigitalOut LED[] = {LED1, LED2, LED3, LED4};

#define indicateSystem(x)       (indicatorLed.write(x))
#define shutdownSystem(void)    (shutDown.write(0))
#define bootSystem(void)        (shutDown.write(1))
#define isPressedRTD(void)      (!RTDSW.read())
#define isShutdownSystem(void)  (SDState.read())

Timer timer;

void initIO(void)
{
    indicatorLed = 0;
    shutDown = 0;
    LED[0] = LED[1] = LED[2] = LED[3] = 0;

    RTDSW.mode(PullUp);
    SDState.mode(PullUp);

    indicateSystem(1);
    bootSystem();
}

int main(void)
{
    int f_whatchdog=0;
    pc.baud(115200);

    printf("\r\nVersion:TVDctrller_ALPHA...start!!!!!\r\n");

    initIO();       //IOポート初期化

    initTVD();

    initSteering();

    timer.start();

    wait(1);

    float time;

    struct errCounter_t eCounter= {0,0,0,0,0,0,0,0};
    while(1) {
        f_whatchdog = ~f_whatchdog;
        WDT.write(f_whatchdog);
        //getCurrentErrCount(&eCounter);
        
        timer.reset();

        driveTVD();

        //printf("%f\n\r", 45.0/0xFFFF * calcRequestTorque());

        //printf("%2.2f\t%3.2f\t%1.2f\r\n", 45.0f / 0xffff * calcRequestTorque(), getVelocity(), getSteerAngle());
        //printf("%1.6f\r\n", time);
        //printf("%d\r\n", eCounter.brakeOverRide);
        time = timer.read();
        while(timer.read_ms() < 10);

        //printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\r\n", eCounter.apsUnderVolt, eCounter.apsExceedVolt, eCounter.apsErrorTolerance, eCounter.apsStick, eCounter.brakeUnderVolt, eCounter.brakeExceedVolt, eCounter.brakeFuzzyVolt, eCounter.brakeOverRide);
        //printf("apsP:%f, apsS:%f, brake:%f\r", 3.3f/65535 * getRawSensor(APS_PRIMARY), 3.3f/65535 * getRawSensor(APS_SECONDARY), 3.3f/65535 * getRawSensor(BRAKE));

        //wait(0.05);
    }
}