3/18 操舵中央

Dependencies:   mbed

Fork of Control_Main_Full_ver2 by albatross

Committer:
YusukeWakuta
Date:
Wed Feb 17 01:58:07 2016 +0000
Revision:
3:0e66ce2ab2fb
Parent:
2:9dc7d5f1e910
Child:
4:4a13dd263a7b
??????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YusukeWakuta 0:b1290ca6c4a2 1 //中央can program
YusukeWakuta 0:b1290ca6c4a2 2
YusukeWakuta 0:b1290ca6c4a2 3 #include "mbed.h"
YusukeWakuta 3:0e66ce2ab2fb 4 #define WAIT_LOOP_TIME 0.2
YusukeWakuta 0:b1290ca6c4a2 5 #define YOKUTAN_DATAS_NUM 5
YusukeWakuta 0:b1290ca6c4a2 6 #define IMPUT_DATAS_NUM 2
YusukeWakuta 0:b1290ca6c4a2 7 #define SEND_DATAS_CAN_ID 100
YusukeWakuta 0:b1290ca6c4a2 8
YusukeWakuta 0:b1290ca6c4a2 9 CAN can_R(p9,p10);
YusukeWakuta 0:b1290ca6c4a2 10 CAN can_L(p30,p29);
YusukeWakuta 0:b1290ca6c4a2 11 Serial toKeikiSerial(p28,p27);
YusukeWakuta 0:b1290ca6c4a2 12 Serial pc(USBTX,USBRX);
YusukeWakuta 3:0e66ce2ab2fb 13 DigitalIn eruron_R(p20);
YusukeWakuta 3:0e66ce2ab2fb 14 DigitalIn eruron_L(p22);
YusukeWakuta 3:0e66ce2ab2fb 15 DigitalIn drug_R(p19);
YusukeWakuta 3:0e66ce2ab2fb 16 DigitalIn drug_L(p23);
YusukeWakuta 0:b1290ca6c4a2 17 DigitalOut myled1(LED1);
YusukeWakuta 0:b1290ca6c4a2 18 DigitalOut myled2(LED2);
YusukeWakuta 0:b1290ca6c4a2 19
YusukeWakuta 0:b1290ca6c4a2 20 signed char yokutanDatas_R[YOKUTAN_DATAS_NUM];
YusukeWakuta 0:b1290ca6c4a2 21 signed char yokutanDatas_L[YOKUTAN_DATAS_NUM];
YusukeWakuta 0:b1290ca6c4a2 22 char inputDatas_R[IMPUT_DATAS_NUM];
YusukeWakuta 0:b1290ca6c4a2 23 char inputDatas_L[IMPUT_DATAS_NUM];
YusukeWakuta 0:b1290ca6c4a2 24
YusukeWakuta 3:0e66ce2ab2fb 25 CANMessage recmsg_R;
YusukeWakuta 3:0e66ce2ab2fb 26 CANMessage recmsg_L;
YusukeWakuta 0:b1290ca6c4a2 27
YusukeWakuta 0:b1290ca6c4a2 28 void InputAndSentControlValues_R(){
YusukeWakuta 3:0e66ce2ab2fb 29 inputDatas_R[0] = (char)drug_R;
YusukeWakuta 3:0e66ce2ab2fb 30 inputDatas_R[1] = (char)eruron_R;
YusukeWakuta 3:0e66ce2ab2fb 31 // pc.printf("R : %d\t%d\t",drug_R.read(),eruron_R.read());
taurin 2:9dc7d5f1e910 32 //for(int i = 0; i < IMPUT_DATAS_NUM; i++){
YusukeWakuta 3:0e66ce2ab2fb 33 if(can_R.write(CANMessage(SEND_DATAS_CAN_ID, inputDatas_R, IMPUT_DATAS_NUM))){
YusukeWakuta 3:0e66ce2ab2fb 34 // pc.printf("Right successed!\n\r");
YusukeWakuta 3:0e66ce2ab2fb 35
YusukeWakuta 0:b1290ca6c4a2 36 }
taurin 2:9dc7d5f1e910 37 //}
YusukeWakuta 0:b1290ca6c4a2 38 }
YusukeWakuta 0:b1290ca6c4a2 39
YusukeWakuta 0:b1290ca6c4a2 40 void ledcheck_R() {
YusukeWakuta 0:b1290ca6c4a2 41 myled1 = 1;
YusukeWakuta 0:b1290ca6c4a2 42 wait(0.2);
YusukeWakuta 0:b1290ca6c4a2 43 myled1 = 0;
YusukeWakuta 0:b1290ca6c4a2 44 wait(0.2);
YusukeWakuta 0:b1290ca6c4a2 45 }
YusukeWakuta 0:b1290ca6c4a2 46
YusukeWakuta 0:b1290ca6c4a2 47 void ledcheck_L() {
YusukeWakuta 0:b1290ca6c4a2 48 myled2 = 1;
YusukeWakuta 0:b1290ca6c4a2 49 wait(0.2);
YusukeWakuta 0:b1290ca6c4a2 50 myled2 = 0;
YusukeWakuta 0:b1290ca6c4a2 51 wait(0.2);
YusukeWakuta 0:b1290ca6c4a2 52 }
YusukeWakuta 0:b1290ca6c4a2 53
YusukeWakuta 0:b1290ca6c4a2 54 void InputAndSentControlValues_L(){
YusukeWakuta 3:0e66ce2ab2fb 55 inputDatas_L[0] = (char)drug_L;
YusukeWakuta 3:0e66ce2ab2fb 56 inputDatas_L[1] = (char)eruron_L;
YusukeWakuta 3:0e66ce2ab2fb 57 pc.printf("L : %d\t%d\n\r",drug_L.read(),eruron_L.read());
taurin 2:9dc7d5f1e910 58 //for(int i = 0; i < IMPUT_DATAS_NUM; i++){
YusukeWakuta 3:0e66ce2ab2fb 59 if(can_L.write(CANMessage(SEND_DATAS_CAN_ID, inputDatas_L, IMPUT_DATAS_NUM))){
YusukeWakuta 3:0e66ce2ab2fb 60 // pc.printf("Left successed!\n\r");
YusukeWakuta 0:b1290ca6c4a2 61 }
taurin 2:9dc7d5f1e910 62 //}
YusukeWakuta 0:b1290ca6c4a2 63 }
YusukeWakuta 0:b1290ca6c4a2 64
YusukeWakuta 0:b1290ca6c4a2 65 void SendDarasToKeiki(){
YusukeWakuta 0:b1290ca6c4a2 66 for(int i = 0; i < YOKUTAN_DATAS_NUM; i++){
YusukeWakuta 0:b1290ca6c4a2 67 toKeikiSerial.putc(yokutanDatas_R[i]);
YusukeWakuta 0:b1290ca6c4a2 68 toKeikiSerial.putc(yokutanDatas_L[i]);
YusukeWakuta 0:b1290ca6c4a2 69 }
YusukeWakuta 0:b1290ca6c4a2 70 }
YusukeWakuta 0:b1290ca6c4a2 71
YusukeWakuta 0:b1290ca6c4a2 72 void toString_R(){
YusukeWakuta 0:b1290ca6c4a2 73 for(int i = 0; i < YOKUTAN_DATAS_NUM; i++){
YusukeWakuta 1:65a3a2a4f535 74 pc.printf("R : ");
YusukeWakuta 1:65a3a2a4f535 75 pc.printf("%i:",yokutanDatas_R[i]);
YusukeWakuta 0:b1290ca6c4a2 76 }
taurin 2:9dc7d5f1e910 77 for(int i = 0; i < IMPUT_DATAS_NUM; i++){
YusukeWakuta 3:0e66ce2ab2fb 78 // pc.printf("%d:%d",i,inputDatas_R[i]);
taurin 2:9dc7d5f1e910 79 }
YusukeWakuta 3:0e66ce2ab2fb 80 // pc.printf("\t");
YusukeWakuta 0:b1290ca6c4a2 81 }
YusukeWakuta 0:b1290ca6c4a2 82
YusukeWakuta 0:b1290ca6c4a2 83 void toString_L(){
YusukeWakuta 0:b1290ca6c4a2 84 for(int i = 0; i < YOKUTAN_DATAS_NUM; i++){
YusukeWakuta 1:65a3a2a4f535 85 pc.printf("L : ");
YusukeWakuta 1:65a3a2a4f535 86 pc.printf("%i:",yokutanDatas_L[i]);
YusukeWakuta 0:b1290ca6c4a2 87 }
YusukeWakuta 0:b1290ca6c4a2 88 pc.printf("\n\r");
YusukeWakuta 0:b1290ca6c4a2 89 }
YusukeWakuta 0:b1290ca6c4a2 90
YusukeWakuta 0:b1290ca6c4a2 91 void init(){
taurin 2:9dc7d5f1e910 92 for(int i = 0; i < IMPUT_DATAS_NUM; i++){
taurin 2:9dc7d5f1e910 93 inputDatas_R[i] = 0;
taurin 2:9dc7d5f1e910 94 inputDatas_L[i] = 0;
taurin 2:9dc7d5f1e910 95 }
YusukeWakuta 0:b1290ca6c4a2 96 }
YusukeWakuta 0:b1290ca6c4a2 97
YusukeWakuta 0:b1290ca6c4a2 98
YusukeWakuta 0:b1290ca6c4a2 99 void receiveDatas(){
YusukeWakuta 0:b1290ca6c4a2 100 if(can_R.read(recmsg_R)){
YusukeWakuta 0:b1290ca6c4a2 101 ledcheck_R();
YusukeWakuta 0:b1290ca6c4a2 102 for(int i = 0; i < recmsg_R.len; i++){
YusukeWakuta 0:b1290ca6c4a2 103 yokutanDatas_R[i] = recmsg_R.data[i];
YusukeWakuta 3:0e66ce2ab2fb 104 // pc.printf("R : %d , %d\t",recmsg_R.data[i]);
YusukeWakuta 0:b1290ca6c4a2 105 }
YusukeWakuta 0:b1290ca6c4a2 106 }
YusukeWakuta 0:b1290ca6c4a2 107 if(can_L.read(recmsg_L)){
YusukeWakuta 0:b1290ca6c4a2 108 ledcheck_L();
YusukeWakuta 0:b1290ca6c4a2 109 for(int i = 0; i < recmsg_L.len; i++){
YusukeWakuta 0:b1290ca6c4a2 110 yokutanDatas_L[i] = recmsg_L.data[i];
YusukeWakuta 3:0e66ce2ab2fb 111 // pc.printf("L : %d , %d\t",recmsg_L.data[i]);
YusukeWakuta 0:b1290ca6c4a2 112 }
YusukeWakuta 0:b1290ca6c4a2 113 }
YusukeWakuta 0:b1290ca6c4a2 114 }
YusukeWakuta 0:b1290ca6c4a2 115
YusukeWakuta 0:b1290ca6c4a2 116
YusukeWakuta 0:b1290ca6c4a2 117 int main(){
YusukeWakuta 0:b1290ca6c4a2 118 init();
YusukeWakuta 0:b1290ca6c4a2 119 while(1){
taurin 2:9dc7d5f1e910 120 //servo_check();
YusukeWakuta 0:b1290ca6c4a2 121 InputAndSentControlValues_R();
YusukeWakuta 0:b1290ca6c4a2 122 InputAndSentControlValues_L();
YusukeWakuta 0:b1290ca6c4a2 123 wait_us(10);
YusukeWakuta 0:b1290ca6c4a2 124 receiveDatas();
YusukeWakuta 0:b1290ca6c4a2 125 toString_R();
YusukeWakuta 0:b1290ca6c4a2 126 toString_L();
YusukeWakuta 0:b1290ca6c4a2 127 wait(WAIT_LOOP_TIME);
YusukeWakuta 0:b1290ca6c4a2 128 }
YusukeWakuta 0:b1290ca6c4a2 129 }