3/8z

Dependencies:   uw_28015 mbed

Committer:
la00noix
Date:
Fri Mar 01 08:03:02 2019 +0000
Revision:
3:6ea13ffa4631
Parent:
2:2d5326f8aa64
Child:
4:04669be0ff12
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
la00noix 3:6ea13ffa4631 1 #include "mbed.h" #include "mbed.h"
la00noix 0:f31ecffcad13 2 #include "uw.h"
la00noix 0:f31ecffcad13 3
la00noix 0:f31ecffcad13 4 CAN can1(PA_11,PA_12,1000000);//ピン宣言
la00noix 0:f31ecffcad13 5 //CAN can1(p30,p29,1000000);
la00noix 0:f31ecffcad13 6 DigitalOut led(LED1);
la00noix 0:f31ecffcad13 7 Ticker ticker;//タイマー割り込み
la00noix 1:5a6c8683a7cf 8 char can_data[8] = {0}; //CAN送信用の配列
la00noix 0:f31ecffcad13 9
la00noix 3:6ea13ffa4631 10 Uw uw1(PF_0); //機体背面の超音波センサー(三宝アーム側)PF_1
la00noix 3:6ea13ffa4631 11 Uw uw2(PF_1); //機体正面の超音波センサー(果物アーム側)PF_0
la00noix 3:6ea13ffa4631 12 Uw uw3(PA_0); //機体左側の超音波センサーPB_4
la00noix 3:6ea13ffa4631 13 Uw uw4(PB_4); //機体右側の超音波センサーPA_0
la00noix 0:f31ecffcad13 14
la00noix 3:6ea13ffa4631 15 char can_data1[2]= {0,0};
la00noix 3:6ea13ffa4631 16 char can_data2[2]= {0,0};
la00noix 3:6ea13ffa4631 17 char can_data3[2]= {0,0};
yuki0701 2:2d5326f8aa64 18 char can_data4[2]= {0,0};
la00noix 0:f31ecffcad13 19
la00noix 1:5a6c8683a7cf 20 int data1,data2;
la00noix 0:f31ecffcad13 21 int dataA, dataB, dataC, dataD;
la00noix 0:f31ecffcad13 22
la00noix 0:f31ecffcad13 23 void can_send()
la00noix 0:f31ecffcad13 24 {
la00noix 3:6ea13ffa4631 25 printf("start\n\r");
la00noix 0:f31ecffcad13 26 //printf("%fcm\r\n",uw1.get_dist());
la00noix 0:f31ecffcad13 27
la00noix 3:6ea13ffa4631 28 dataA = (short)(100 * uw1.get_dist()); //超音波センサーの値を1000倍して送る(受信側で0.001倍して元に戻す)
la00noix 3:6ea13ffa4631 29 dataB = (short)(100 * uw2.get_dist());
la00noix 3:6ea13ffa4631 30 dataC = (short)(100 * uw3.get_dist());
yuki0701 2:2d5326f8aa64 31 dataD = (short)(100 * uw4.get_dist());
la00noix 0:f31ecffcad13 32
la00noix 3:6ea13ffa4631 33 can_data1[0] = dataA >> 8;
la00noix 3:6ea13ffa4631 34 can_data1[1] = dataA &255;
la00noix 0:f31ecffcad13 35
la00noix 3:6ea13ffa4631 36 can_data2[0] = dataB >> 8;
la00noix 3:6ea13ffa4631 37 can_data2[1] = dataB &255;
la00noix 0:f31ecffcad13 38
la00noix 3:6ea13ffa4631 39 can_data3[0] = dataC >> 8;
la00noix 0:f31ecffcad13 40 can_data3[1] = dataC &255;
la00noix 3:6ea13ffa4631 41
yuki0701 2:2d5326f8aa64 42 can_data4[0] = dataD >> 8;
yuki0701 2:2d5326f8aa64 43 can_data4[1] = dataD &255;
la00noix 0:f31ecffcad13 44
la00noix 3:6ea13ffa4631 45 if(can1.write(CANMessage(3,can_data1,2))) {
la00noix 0:f31ecffcad13 46 led = 1;
la00noix 3:6ea13ffa4631 47 //printf("%fcm\r\n",uw1.get_dist());
la00noix 0:f31ecffcad13 48 //printf("send\n\r");
la00noix 0:f31ecffcad13 49 } else {
la00noix 3:6ea13ffa4631 50 printf("uw1 not send\n\r");
la00noix 3:6ea13ffa4631 51 }
la00noix 0:f31ecffcad13 52
la00noix 3:6ea13ffa4631 53 if(can1.write(CANMessage(4,can_data2,2))) {
la00noix 1:5a6c8683a7cf 54 led = 1;
la00noix 3:6ea13ffa4631 55 //printf("%fcm\r\n",uw2.get_dist());
la00noix 1:5a6c8683a7cf 56 //printf("send\n\r");
la00noix 1:5a6c8683a7cf 57 } else {
la00noix 3:6ea13ffa4631 58 printf("uw2 not send\n\r");
la00noix 3:6ea13ffa4631 59 }
la00noix 3:6ea13ffa4631 60
la00noix 1:5a6c8683a7cf 61
la00noix 3:6ea13ffa4631 62
la00noix 3:6ea13ffa4631 63 if(can1.write(CANMessage(6,can_data4,2))) {
la00noix 0:f31ecffcad13 64 led = 1;
la00noix 3:6ea13ffa4631 65 //printf("%fcm\r\n",uw4.get_dist());
la00noix 0:f31ecffcad13 66 //printf("send\n\r");
la00noix 0:f31ecffcad13 67 } else {
la00noix 3:6ea13ffa4631 68 printf("uw4 not send\n\r");
la00noix 3:6ea13ffa4631 69 }
la00noix 0:f31ecffcad13 70
la00noix 3:6ea13ffa4631 71 if(can1.write(CANMessage(5,can_data3,2))) {
la00noix 1:5a6c8683a7cf 72 led = 1;
la00noix 3:6ea13ffa4631 73 //printf("%fcm\r\n",uw3.get_dist());
la00noix 1:5a6c8683a7cf 74 //printf("send\n\r");
la00noix 1:5a6c8683a7cf 75 } else {
la00noix 3:6ea13ffa4631 76 printf("uw3 not send\n\r");
yuki0701 2:2d5326f8aa64 77 }
la00noix 3:6ea13ffa4631 78 printf("uw1=%f uw2=%f uw3=%f uw4=%f\n\r",uw1.get_dist(),uw2.get_dist(),uw3.get_dist(),uw4.get_dist());
la00noix 1:5a6c8683a7cf 79
la00noix 1:5a6c8683a7cf 80 /*動確用プログラム
la00noix 3:6ea13ffa4631 81
la00noix 1:5a6c8683a7cf 82 data1 = 500;
la00noix 0:f31ecffcad13 83 can_data[0] = data1>>8;
la00noix 0:f31ecffcad13 84 can_data[1] = data1&255;
la00noix 0:f31ecffcad13 85
la00noix 0:f31ecffcad13 86 if(can1.write(CANMessage(1,can_data,2))) { //IDを1にして送信
la00noix 0:f31ecffcad13 87 led = 1;//送信時にLED1を点灯
la00noix 0:f31ecffcad13 88 printf("send\n\r");
la00noix 0:f31ecffcad13 89 } else {
la00noix 0:f31ecffcad13 90 printf("not send\n\r");
la00noix 0:f31ecffcad13 91 }*/
la00noix 0:f31ecffcad13 92 }
la00noix 1:5a6c8683a7cf 93
la00noix 0:f31ecffcad13 94 int main()
la00noix 0:f31ecffcad13 95 {
la00noix 0:f31ecffcad13 96 can1.frequency(1000000);
la00noix 0:f31ecffcad13 97 //can1.frequency(10000);
la00noix 0:f31ecffcad13 98 ticker.attach(&can_send,0.01); //can_send関数に0.001秒間隔で割り込み
la00noix 0:f31ecffcad13 99 while(1);
la00noix 0:f31ecffcad13 100 }