春ロボ1班(元F3RC4班+)
/
harurobo_sensor_3_8
3/8z
Diff: main.cpp
- Revision:
- 0:f31ecffcad13
- Child:
- 1:5a6c8683a7cf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Feb 26 05:00:17 2019 +0000 @@ -0,0 +1,80 @@ +#include "mbed.h" +#include "uw.h" + +CAN can1(PA_11,PA_12,1000000);//ピン宣言 +//CAN can1(p30,p29,1000000); +DigitalOut led(LED1); +Ticker ticker;//タイマー割り込み +char can_data[8]= {0}; //CAN送信用の配列 + +Uw uw1(PF_1); //機体背面の超音波センサー(三宝アーム側) +//Uw uw2(PF_0); //機体正面の超音波センサー(果物アーム側) +Uw uw3(PB_4); //機体左側の超音波センサー +//Uw uw4(PA_0); //機体右側の超音波センサー + +char can_data1[2]= {0,0}; +//char can_data2[2]={0,0}; +char can_data3[2]= {0,0}; +//char can_data4[2]={0,0}; + +int data1; +int data2; + +int x; +int dataA, dataB, dataC, dataD; + +void can_send() +{ + //printf("%fcm\r\n",uw1.get_dist()); + + dataA = (short)(100 * uw1.get_dist()); //超音波センサーの値を1000倍して送る(受信側で0.001倍して元に戻す) + //dataB = (short)1000 * uw2.get_dist(); + dataC = (short)(100 * uw3.get_dist()); + //dataD = 100 * uw4.get_dist(); + + can_data1[0] = dataA >> 8; + can_data1[1] = dataA &255; + + /*can_data2[0] = data2 >> 8; + can_data2[1] = data2 &255;*/ + + can_data3[0] = dataC >> 8; + can_data3[1] = dataC &255; + + /*can_data4[0] = data4 >> 8; + can_data4[1] = data4 &255;*/ + + if(can1.write(CANMessage(3,can_data1,2))) { + led = 1; + printf("%fcm\r\n",uw1.get_dist()); + //printf("send\n\r"); + } else { + printf("not send\n\r"); + } + + if(can1.write(CANMessage(5,can_data3,2))) { + led = 1; + printf("%fcm\r\n",uw3.get_dist()); + //printf("send\n\r"); + } else { + printf("not send\n\r"); + } + + /*data1 = 500; + can_data[0] = data1>>8; + can_data[1] = data1&255; + + if(can1.write(CANMessage(1,can_data,2))) { //IDを1にして送信 + led = 1;//送信時にLED1を点灯 + printf("send\n\r"); + } else { + printf("not send\n\r"); + }*/ +} +int main() +{ + can1.frequency(1000000); + //can1.frequency(10000); + ticker.attach(&can_send,0.01); //can_send関数に0.001秒間隔で割り込み + while(1); +} \ No newline at end of file