2月25日
Dependencies: mbed SpeedController2_25 ros_lib_kinetic
Diff: can/can.cpp
- Revision:
- 5:fe91d31db27e
- Parent:
- 4:46c10d34af27
--- a/can/can.cpp Sat Nov 16 06:28:18 2019 +0000 +++ b/can/can.cpp Tue Feb 25 01:23:14 2020 +0000 @@ -1,103 +1,103 @@ -#include "mbed.h" -#include "can.h" - -CAN can1(p30,p29); -Ticker can_ticker; //can用ticker - -DigitalOut cansend_led(LED1); //cansend -> on -DigitalOut canread_led(LED2); //canread -> on - -double mt_out1=0.0,mt_out2=0.0; - -int t1_r=0, T1=0; //動作番号(受け取った値、送信する値(int型)) - -void can_readsend() -{ - CANMessage msg; - - - if(can1.read(msg)) { - //printf(" CAN success\n\r"); - if(msg.id == 4) { - mt_out1 = 1/(double)200*(short)((msg.data[0]<<8) | msg.data[1]); - mt_out2 = 1/(double)200*(short)((msg.data[2]<<8) | msg.data[3]); - //mt_out1 = 1/(double)50*(short)((msg.data[4]<<8) | msg.data[5]); - //mt_out2 = 1/(double)50*(short)((msg.data[6]<<8) | msg.data[7]); - //debug_printf("usw_data1 = %f\n\r",usw_data1); - printf("mt_out1 = %f,mt_out2 = %f\n\r",mt_out1,mt_out2); - } - // if(msg.id == 7){ -// mt_out2 = 1/(double)50*(short)((msg.data[0]<<8) | msg.data[1]); -// printf("id = 5 mt_out2 = %f, data[0] = %d, data[1] = %d\n\r",mt_out2,msg.data[0],msg.data[1]); +//#include "mbed.h" +//#include "can.h" +// +//CAN can1(p30,p29); +//Ticker can_ticker; //can用ticker +// +//DigitalOut cansend_led(LED1); //cansend -> on +//DigitalOut canread_led(LED2); //canread -> on +// +//double mt_out1=0.0,mt_out2=0.0; +// +//int t1_r=0, T1=0; //動作番号(受け取った値、送信する値(int型)) +// +//void can_readsend() +//{ +// CANMessage msg; +// +// +// if(can1.read(msg)) { +// //printf(" CAN success\n\r"); +// if(msg.id == 4) { +// mt_out1 = 1/(double)200*(short)((msg.data[0]<<8) | msg.data[1]); +// mt_out2 = 1/(double)200*(short)((msg.data[2]<<8) | msg.data[3]); +// //mt_out1 = 1/(double)50*(short)((msg.data[4]<<8) | msg.data[5]); +// //mt_out2 = 1/(double)50*(short)((msg.data[6]<<8) | msg.data[7]); +// //debug_printf("usw_data1 = %f\n\r",usw_data1); +// printf("mt_out1 = %f,mt_out2 = %f\n\r",mt_out1,mt_out2); // } - - } else { - canread_led = 0; - printf("fale\n\r"); - } - - - // can_ashileddata[1] = T1; //動作番号(id節約のため、can_ashileddata[]と一緒に送る) - -// can_ashileddata2[0] = m1 >> 8; -// can_ashileddata2[1] = m1 &255; +// // if(msg.id == 7){ +//// mt_out2 = 1/(double)50*(short)((msg.data[0]<<8) | msg.data[1]); +//// printf("id = 5 mt_out2 = %f, data[0] = %d, data[1] = %d\n\r",mt_out2,msg.data[0],msg.data[1]); +//// } // -// can_ashileddata3[0] = m1 >> 8; -// can_ashileddata3[1] = m1 &255; -// -// can_ashileddata4[0] = m1 >> 8; -// can_ashileddata4[1] = m1 &255; -// -// can_ashileddata5[0] = m1 >> 8; -// can_ashileddata5[1] = m1 &255; -// -// if(can1.write(CANMessage(4,can_ashileddata2,2))) { //IDを4にして送信 -// cansend_led = 1; // } else { -// cansend_led = 0; +// canread_led = 0; +// printf("fale\n\r"); // } // -// if(can1.write(CANMessage(4,can_ashileddata3,2))) { //IDを4にして送信 -// cansend_led = 1; -// } else { -// cansend_led = 0; -// } +// +// // can_ashileddata[1] = T1; //動作番号(id節約のため、can_ashileddata[]と一緒に送る) // -// if(can1.write(CANMessage(4,can_ashileddata4,2))) { //IDを4にして送信 -// cansend_led = 1; -// } else { -// cansend_led = 0; -// } +//// can_ashileddata2[0] = m1 >> 8; +//// can_ashileddata2[1] = m1 &255; +//// +//// can_ashileddata3[0] = m1 >> 8; +//// can_ashileddata3[1] = m1 &255; +//// +//// can_ashileddata4[0] = m1 >> 8; +//// can_ashileddata4[1] = m1 &255; +//// +//// can_ashileddata5[0] = m1 >> 8; +//// can_ashileddata5[1] = m1 &255; +//// +//// if(can1.write(CANMessage(4,can_ashileddata2,2))) { //IDを4にして送信 +//// cansend_led = 1; +//// } else { +//// cansend_led = 0; +//// } +//// +//// if(can1.write(CANMessage(4,can_ashileddata3,2))) { //IDを4にして送信 +//// cansend_led = 1; +//// } else { +//// cansend_led = 0; +//// } +//// +//// if(can1.write(CANMessage(4,can_ashileddata4,2))) { //IDを4にして送信 +//// cansend_led = 1; +//// } else { +//// cansend_led = 0; +//// } +//// +//// if(can1.write(CANMessage(4,can_ashileddata5,2))) { //IDを4にして送信 +//// cansend_led = 1; +//// } else { +//// cansend_led = 0; +//// } // -// if(can1.write(CANMessage(4,can_ashileddata5,2))) { //IDを4にして送信 -// cansend_led = 1; -// } else { -// cansend_led = 0; +// /*if(t1_r > T1) { +// T1 = t1_r; +// }*/ +//} +// +//void can_start() +//{ +// +// while(1) { +// +// CANMessage msg; +// +//// debug_printf("wait\n\r"); +// printf("wait\n\r"); +// wait(0.1); +// if(can1.read(msg)) { +// break; +// } // } - - /*if(t1_r > T1) { - T1 = t1_r; - }*/ -} - -void can_start() -{ - - while(1) { - - CANMessage msg; - -// debug_printf("wait\n\r"); - printf("wait\n\r"); - wait(0.1); - if(can1.read(msg)) { - break; - } - } -} - -void UserLoopSetting_can() -{ - can1.frequency(1000000); - can_ticker.attach(&can_readsend,0.01); //遅かったら早める -} \ No newline at end of file +//} +// +//void UserLoopSetting_can() +//{ +// can1.frequency(1000000); +// can_ticker.attach(&can_readsend,0.01); //遅かったら早める +//} \ No newline at end of file