2014 sift / Mbed 2 deprecated TVDctrller2017_brdRev1_PandA

Dependencies:   mbed

Fork of TVDctrller2017_brdRev1_ver6 by 2014 sift

main.cpp

Committer:
sift
Date:
2016-08-17
Revision:
19:571a4d00b89c
Parent:
14:7cc98e159c6e
Child:
20:3c5061281a7a

File content as of revision 19:571a4d00b89c:

#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,p9);  // MOSI, SCLK, CS
DigitalOut cs(p8);
DigitalIn SDState(p10);
DigitalIn RTDSW(p11);
DigitalIn SLCTSW[3] = {p12, p13, p14};
InterruptIn rightMotorPulse(p15);
InterruptIn leftMotorPulse(p16);
AnalogIn brake(p17);
AnalogOut STR2AN(p18);
AnalogIn apsS(p19);     //"S"econdary
AnalogIn apsP(p20);     //"P"rimary
DigitalOut shutDown(p21);
DigitalOut indicatorLed(p22);
DigitalOut WDT(p23);
DigitalOut DBGLED[3] = {p24, p25, p26};
DigitalOut RSV(p27);    //予約ピン
Serial ComInpn(p28, NC);
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:TVDcontrol_BETA...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);
    }
}