2014 sift / Mbed 2 deprecated TVDctrller2017_brdRev1_PandA

Dependencies:   mbed

Fork of TVDctrller2017_brdRev1_ver6 by 2014 sift

Committer:
sift
Date:
Tue Jul 26 05:12:15 2016 +0000
Revision:
6:26fa8c78500e
Parent:
5:a5462959b3ab
Child:
8:a22aec357a64
??????????????????????16bit??????????????????????????????; ?????????????

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 0:276c1dab2d62 11 MCP4922 mcp(p5,p7,p8); // MOSI, SCLK, CS
sift 0:276c1dab2d62 12 Serial com2(p9, p10); //xbeeとかデバッグ用
sift 0:276c1dab2d62 13 DigitalOut cs(p11);
sift 0:276c1dab2d62 14 //12
sift 0:276c1dab2d62 15 //13
sift 0:276c1dab2d62 16 //14
sift 1:4d86ec2fe4b1 17 InterruptIn rightMotorPulse(p15);
sift 1:4d86ec2fe4b1 18 InterruptIn leftMotorPulse(p16);
sift 0:276c1dab2d62 19 AnalogIn brake(p17);
sift 0:276c1dab2d62 20 AnalogOut ana(p18);
sift 0:276c1dab2d62 21 AnalogIn apsS(p19); //"S"econdary
sift 0:276c1dab2d62 22 AnalogIn apsP(p20); //"P"rimary
sift 0:276c1dab2d62 23 DigitalOut indicatorLed(p21);
sift 0:276c1dab2d62 24 DigitalOut shutDown(p22);
sift 0:276c1dab2d62 25 DigitalOut MotorPulse[] = {p23, p24};
sift 0:276c1dab2d62 26 DigitalIn RTDSW(p25);
sift 0:276c1dab2d62 27 DigitalIn SDState(p26);
sift 0:276c1dab2d62 28 Serial com1(p28, p27); //インパネとの通信に使用するかも知れなくもないかもしれない
sift 0:276c1dab2d62 29
sift 0:276c1dab2d62 30 DigitalOut LED[] = {LED1, LED2, LED3, LED4};
sift 0:276c1dab2d62 31 //DigitalOut watchDog();
sift 1:4d86ec2fe4b1 32 CAN can(p30, p29);
sift 0:276c1dab2d62 33
sift 0:276c1dab2d62 34 #define indicateSystem(x) (indicatorLed.write(x))
sift 0:276c1dab2d62 35 #define shutdownSystem(void) (shutDown.write(0))
sift 0:276c1dab2d62 36 #define bootSystem(void) (shutDown.write(1))
sift 0:276c1dab2d62 37 #define isPressedRTD(void) (!RTDSW.read())
sift 0:276c1dab2d62 38 #define isShutdownSystem(void) (SDState.read())
sift 0:276c1dab2d62 39
sift 2:9d69f27a3d3b 40 Timer timer;
sift 2:9d69f27a3d3b 41
sift 0:276c1dab2d62 42 void initIO(void)
sift 0:276c1dab2d62 43 {
sift 0:276c1dab2d62 44 indicatorLed = 0;
sift 0:276c1dab2d62 45 shutDown = 0;
sift 0:276c1dab2d62 46 LED[0] = LED[1] = LED[2] = LED[3] = 0;
sift 0:276c1dab2d62 47
sift 0:276c1dab2d62 48 RTDSW.mode(PullUp);
sift 0:276c1dab2d62 49 SDState.mode(PullUp);
sift 6:26fa8c78500e 50
sift 2:9d69f27a3d3b 51 indicateSystem(1);
sift 2:9d69f27a3d3b 52 bootSystem();
sift 0:276c1dab2d62 53 }
sift 0:276c1dab2d62 54
sift 1:4d86ec2fe4b1 55 int main(void)
sift 0:276c1dab2d62 56 {
sift 2:9d69f27a3d3b 57 pc.baud(115200);
sift 6:26fa8c78500e 58
sift 2:9d69f27a3d3b 59 printf("\r\nVersion:TVDcontrolDEMO...start!!!!!\r\n");
sift 1:4d86ec2fe4b1 60
sift 1:4d86ec2fe4b1 61 initIO(); //IOポート初期化
sift 0:276c1dab2d62 62
sift 1:4d86ec2fe4b1 63 initTVD();
sift 1:4d86ec2fe4b1 64
sift 2:9d69f27a3d3b 65 initSteering();
sift 2:9d69f27a3d3b 66
sift 2:9d69f27a3d3b 67 timer.start();
sift 6:26fa8c78500e 68
sift 2:9d69f27a3d3b 69 float time;
sift 2:9d69f27a3d3b 70
sift 1:4d86ec2fe4b1 71 while(1) {
sift 2:9d69f27a3d3b 72 //struct errCounter_t eCounter={0,0,0,0,0,0,0,0};
sift 2:9d69f27a3d3b 73
sift 2:9d69f27a3d3b 74 //getCurrentErrCount(&eCounter);
sift 6:26fa8c78500e 75
sift 2:9d69f27a3d3b 76 timer.reset();
sift 1:4d86ec2fe4b1 77
sift 2:9d69f27a3d3b 78 driveTVD();
sift 6:26fa8c78500e 79
sift 3:821e2f07a260 80 //printf("%f\n\r", 45.0/0xFFFF * calcRequestTorque());
sift 6:26fa8c78500e 81
sift 6:26fa8c78500e 82 printf("%1.2f\t%d\t%1.6f\t%1.5f\r\n", 45.0f / 0xffff * calcRequestTorque(), (int)(1.0/(getPulseTime(RIGHT_MOTOR)*0.000001)*60.0), time, getSteerAngle());
sift 2:9d69f27a3d3b 83 //printf("%1.6f\r\n", time);
sift 2:9d69f27a3d3b 84 time = timer.read();
sift 2:9d69f27a3d3b 85
sift 2:9d69f27a3d3b 86 //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 2:9d69f27a3d3b 87 //printf("take time:%f, apsP:%f, apsS:%f, brake:%f\r", getTakeTime(), 3.3f/65535 * loadRawSensor(APS_PRIMARY), 3.3f/65535 * loadRawSensor(APS_SECONDARY), 3.3f/65535 * loadRawSensor(BRAKE));
sift 2:9d69f27a3d3b 88
sift 2:9d69f27a3d3b 89 //wait(0.05);
sift 0:276c1dab2d62 90 }
sift 2:9d69f27a3d3b 91 }