2014 sift / Mbed 2 deprecated TVDctrller2017_brdRev1_PandA

Dependencies:   mbed

Fork of TVDctrller2017_brdRev1_ver6 by 2014 sift

Committer:
sift
Date:
Wed Aug 17 14:17:14 2016 +0000
Revision:
19:571a4d00b89c
Parent:
14:7cc98e159c6e
Child:
20:3c5061281a7a
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sift 0:276c1dab2d62 1 #include "mbed.h"
sift 0:276c1dab2d62 2 #include "TVDCTRL.h"
sift 2:9d69f27a3d3b 3 #include "Steering.h"
sift 0:276c1dab2d62 4 #include "MCP4922.h"
sift 0:276c1dab2d62 5
sift 2:9d69f27a3d3b 6 Serial pc(USBTX, USBRX); // tx, rx
sift 2:9d69f27a3d3b 7
sift 0:276c1dab2d62 8 ////////////////////////////////////////
sift 0:276c1dab2d62 9 //IO宣言
sift 0:276c1dab2d62 10 SPI spi(p5,p6,p7);
sift 19:571a4d00b89c 11 MCP4922 mcp(p5,p7,p9); // MOSI, SCLK, CS
sift 19:571a4d00b89c 12 DigitalOut cs(p8);
sift 19:571a4d00b89c 13 DigitalIn SDState(p10);
sift 19:571a4d00b89c 14 DigitalIn RTDSW(p11);
sift 19:571a4d00b89c 15 DigitalIn SLCTSW[3] = {p12, p13, p14};
sift 1:4d86ec2fe4b1 16 InterruptIn rightMotorPulse(p15);
sift 1:4d86ec2fe4b1 17 InterruptIn leftMotorPulse(p16);
sift 0:276c1dab2d62 18 AnalogIn brake(p17);
sift 19:571a4d00b89c 19 AnalogOut STR2AN(p18);
sift 0:276c1dab2d62 20 AnalogIn apsS(p19); //"S"econdary
sift 0:276c1dab2d62 21 AnalogIn apsP(p20); //"P"rimary
sift 19:571a4d00b89c 22 DigitalOut shutDown(p21);
sift 19:571a4d00b89c 23 DigitalOut indicatorLed(p22);
sift 19:571a4d00b89c 24 DigitalOut WDT(p23);
sift 19:571a4d00b89c 25 DigitalOut DBGLED[3] = {p24, p25, p26};
sift 19:571a4d00b89c 26 DigitalOut RSV(p27); //予約ピン
sift 19:571a4d00b89c 27 Serial ComInpn(p28, NC);
sift 19:571a4d00b89c 28 CAN can(p30, p29);
sift 0:276c1dab2d62 29
sift 0:276c1dab2d62 30 DigitalOut LED[] = {LED1, LED2, LED3, LED4};
sift 0:276c1dab2d62 31
sift 0:276c1dab2d62 32 #define indicateSystem(x) (indicatorLed.write(x))
sift 0:276c1dab2d62 33 #define shutdownSystem(void) (shutDown.write(0))
sift 0:276c1dab2d62 34 #define bootSystem(void) (shutDown.write(1))
sift 0:276c1dab2d62 35 #define isPressedRTD(void) (!RTDSW.read())
sift 0:276c1dab2d62 36 #define isShutdownSystem(void) (SDState.read())
sift 0:276c1dab2d62 37
sift 2:9d69f27a3d3b 38 Timer timer;
sift 2:9d69f27a3d3b 39
sift 0:276c1dab2d62 40 void initIO(void)
sift 0:276c1dab2d62 41 {
sift 0:276c1dab2d62 42 indicatorLed = 0;
sift 0:276c1dab2d62 43 shutDown = 0;
sift 0:276c1dab2d62 44 LED[0] = LED[1] = LED[2] = LED[3] = 0;
sift 0:276c1dab2d62 45
sift 0:276c1dab2d62 46 RTDSW.mode(PullUp);
sift 0:276c1dab2d62 47 SDState.mode(PullUp);
sift 6:26fa8c78500e 48
sift 2:9d69f27a3d3b 49 indicateSystem(1);
sift 2:9d69f27a3d3b 50 bootSystem();
sift 0:276c1dab2d62 51 }
sift 0:276c1dab2d62 52
sift 1:4d86ec2fe4b1 53 int main(void)
sift 0:276c1dab2d62 54 {
sift 19:571a4d00b89c 55 int f_whatchdog=0;
sift 2:9d69f27a3d3b 56 pc.baud(115200);
sift 6:26fa8c78500e 57
sift 12:ae291fa7239c 58 printf("\r\nVersion:TVDcontrol_BETA...start!!!!!\r\n");
sift 1:4d86ec2fe4b1 59
sift 1:4d86ec2fe4b1 60 initIO(); //IOポート初期化
sift 0:276c1dab2d62 61
sift 1:4d86ec2fe4b1 62 initTVD();
sift 1:4d86ec2fe4b1 63
sift 2:9d69f27a3d3b 64 initSteering();
sift 2:9d69f27a3d3b 65
sift 2:9d69f27a3d3b 66 timer.start();
sift 12:ae291fa7239c 67
sift 10:87ad65eef0e9 68 wait(1);
sift 6:26fa8c78500e 69
sift 2:9d69f27a3d3b 70 float time;
sift 2:9d69f27a3d3b 71
sift 12:ae291fa7239c 72 struct errCounter_t eCounter= {0,0,0,0,0,0,0,0};
sift 1:4d86ec2fe4b1 73 while(1) {
sift 19:571a4d00b89c 74 f_whatchdog = ~f_whatchdog;
sift 19:571a4d00b89c 75 WDT.write(f_whatchdog);
sift 14:7cc98e159c6e 76 //getCurrentErrCount(&eCounter);
sift 6:26fa8c78500e 77
sift 2:9d69f27a3d3b 78 timer.reset();
sift 1:4d86ec2fe4b1 79
sift 2:9d69f27a3d3b 80 driveTVD();
sift 6:26fa8c78500e 81
sift 3:821e2f07a260 82 //printf("%f\n\r", 45.0/0xFFFF * calcRequestTorque());
sift 6:26fa8c78500e 83
sift 12:ae291fa7239c 84 //printf("%2.2f\t%3.2f\t%1.2f\r\n", 45.0f / 0xffff * calcRequestTorque(), getVelocity(), getSteerAngle());
sift 2:9d69f27a3d3b 85 //printf("%1.6f\r\n", time);
sift 12:ae291fa7239c 86 //printf("%d\r\n", eCounter.brakeOverRide);
sift 2:9d69f27a3d3b 87 time = timer.read();
sift 12:ae291fa7239c 88 while(timer.read_ms() < 10);
sift 2:9d69f27a3d3b 89
sift 13:6dc51981f391 90 //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);
sift 12:ae291fa7239c 91 //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));
sift 2:9d69f27a3d3b 92
sift 2:9d69f27a3d3b 93 //wait(0.05);
sift 0:276c1dab2d62 94 }
sift 2:9d69f27a3d3b 95 }