3/8z

Dependencies:   uw_28015 mbed

Committer:
la00noix
Date:
Tue Feb 26 05:00:17 2019 +0000
Revision:
0:f31ecffcad13
Child:
1:5a6c8683a7cf
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
la00noix 0:f31ecffcad13 1 #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 0:f31ecffcad13 8 char can_data[8]= {0}; //CAN送信用の配列
la00noix 0:f31ecffcad13 9
la00noix 0:f31ecffcad13 10 Uw uw1(PF_1); //機体背面の超音波センサー(三宝アーム側)
la00noix 0:f31ecffcad13 11 //Uw uw2(PF_0); //機体正面の超音波センサー(果物アーム側)
la00noix 0:f31ecffcad13 12 Uw uw3(PB_4); //機体左側の超音波センサー
la00noix 0:f31ecffcad13 13 //Uw uw4(PA_0); //機体右側の超音波センサー
la00noix 0:f31ecffcad13 14
la00noix 0:f31ecffcad13 15 char can_data1[2]= {0,0};
la00noix 0:f31ecffcad13 16 //char can_data2[2]={0,0};
la00noix 0:f31ecffcad13 17 char can_data3[2]= {0,0};
la00noix 0:f31ecffcad13 18 //char can_data4[2]={0,0};
la00noix 0:f31ecffcad13 19
la00noix 0:f31ecffcad13 20 int data1;
la00noix 0:f31ecffcad13 21 int data2;
la00noix 0:f31ecffcad13 22
la00noix 0:f31ecffcad13 23 int x;
la00noix 0:f31ecffcad13 24 int dataA, dataB, dataC, dataD;
la00noix 0:f31ecffcad13 25
la00noix 0:f31ecffcad13 26 void can_send()
la00noix 0:f31ecffcad13 27 {
la00noix 0:f31ecffcad13 28 //printf("%fcm\r\n",uw1.get_dist());
la00noix 0:f31ecffcad13 29
la00noix 0:f31ecffcad13 30 dataA = (short)(100 * uw1.get_dist()); //超音波センサーの値を1000倍して送る(受信側で0.001倍して元に戻す)
la00noix 0:f31ecffcad13 31 //dataB = (short)1000 * uw2.get_dist();
la00noix 0:f31ecffcad13 32 dataC = (short)(100 * uw3.get_dist());
la00noix 0:f31ecffcad13 33 //dataD = 100 * uw4.get_dist();
la00noix 0:f31ecffcad13 34
la00noix 0:f31ecffcad13 35 can_data1[0] = dataA >> 8;
la00noix 0:f31ecffcad13 36 can_data1[1] = dataA &255;
la00noix 0:f31ecffcad13 37
la00noix 0:f31ecffcad13 38 /*can_data2[0] = data2 >> 8;
la00noix 0:f31ecffcad13 39 can_data2[1] = data2 &255;*/
la00noix 0:f31ecffcad13 40
la00noix 0:f31ecffcad13 41 can_data3[0] = dataC >> 8;
la00noix 0:f31ecffcad13 42 can_data3[1] = dataC &255;
la00noix 0:f31ecffcad13 43
la00noix 0:f31ecffcad13 44 /*can_data4[0] = data4 >> 8;
la00noix 0:f31ecffcad13 45 can_data4[1] = data4 &255;*/
la00noix 0:f31ecffcad13 46
la00noix 0:f31ecffcad13 47 if(can1.write(CANMessage(3,can_data1,2))) {
la00noix 0:f31ecffcad13 48 led = 1;
la00noix 0:f31ecffcad13 49 printf("%fcm\r\n",uw1.get_dist());
la00noix 0:f31ecffcad13 50 //printf("send\n\r");
la00noix 0:f31ecffcad13 51 } else {
la00noix 0:f31ecffcad13 52 printf("not send\n\r");
la00noix 0:f31ecffcad13 53 }
la00noix 0:f31ecffcad13 54
la00noix 0:f31ecffcad13 55 if(can1.write(CANMessage(5,can_data3,2))) {
la00noix 0:f31ecffcad13 56 led = 1;
la00noix 0:f31ecffcad13 57 printf("%fcm\r\n",uw3.get_dist());
la00noix 0:f31ecffcad13 58 //printf("send\n\r");
la00noix 0:f31ecffcad13 59 } else {
la00noix 0:f31ecffcad13 60 printf("not send\n\r");
la00noix 0:f31ecffcad13 61 }
la00noix 0:f31ecffcad13 62
la00noix 0:f31ecffcad13 63 /*data1 = 500;
la00noix 0:f31ecffcad13 64 can_data[0] = data1>>8;
la00noix 0:f31ecffcad13 65 can_data[1] = data1&255;
la00noix 0:f31ecffcad13 66
la00noix 0:f31ecffcad13 67 if(can1.write(CANMessage(1,can_data,2))) { //IDを1にして送信
la00noix 0:f31ecffcad13 68 led = 1;//送信時にLED1を点灯
la00noix 0:f31ecffcad13 69 printf("send\n\r");
la00noix 0:f31ecffcad13 70 } else {
la00noix 0:f31ecffcad13 71 printf("not send\n\r");
la00noix 0:f31ecffcad13 72 }*/
la00noix 0:f31ecffcad13 73 }
la00noix 0:f31ecffcad13 74 int main()
la00noix 0:f31ecffcad13 75 {
la00noix 0:f31ecffcad13 76 can1.frequency(1000000);
la00noix 0:f31ecffcad13 77 //can1.frequency(10000);
la00noix 0:f31ecffcad13 78 ticker.attach(&can_send,0.01); //can_send関数に0.001秒間隔で割り込み
la00noix 0:f31ecffcad13 79 while(1);
la00noix 0:f31ecffcad13 80 }