春ロボ 2班 2017
/
asimawari
主にオムニです。
Fork of asimawari by
Embed:
(wiki syntax)
Show/hide line numbers
jyairo.h
00001 #include "RawSerial.h" 00002 00003 Serial pc(USBTX, USBRX); // tx, rx 00004 //Serial device(p13, p14); // tx, rx 00005 RawSerial device(p13,p14); 00006 AnalogIn tx(p19); 00007 AnalogIn rx(p20); 00008 #define CAN_ID 10 00009 CAN can1(p30, p29); 00010 DigitalOut led1(LED1); //check 00011 00012 Ticker ticker; 00013 00014 uint8_t val[15]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; 00015 uint8_t check_sum=0; 00016 int16_t data_angle=0; 00017 double angle=0; 00018 bool protect=0; 00019 00020 char send_data[8]={0,0,0,0,0,0,0,0}; 00021 00022 void dev_rx () 00023 { 00024 val[0]=device.getc(); 00025 val[1]=device.getc(); 00026 if(val[0]==170 && val[1]==0) { 00027 for(int i=2; i<14; i++) { 00028 val[i]=device.getc(); 00029 check_sum+=val[i]; 00030 } 00031 val[14]=device.getc(); 00032 if(check_sum==val[14]) { 00033 if(val[4]>0x80)data_angle=((val[3]&0xFF)|((val[4]<<8)&0xFF00))-0xFFFF; 00034 else data_angle=((val[3]&0xFF)|((val[4]<<8)&0xFF00)); 00035 angle=data_angle/100.0; 00036 send_data[0]=data_angle>>8; 00037 send_data[1]=data_angle&255; 00038 if(can1.write(CANMessage(CAN_ID,send_data,2))) { 00039 //pc.printf("send\r\n"); 00040 } 00041 check_sum=0; 00042 } 00043 } 00044 } 00045 00046 //setting 00047 device.baud(115200); 00048 device.format(8,Serial::None,1); 00049 can1.frequency(1000000); 00050 //ticker.attach(&dev_rx,0.05); 00051 device.attach(dev_rx, Serial::RxIrq); 00052 int a=0; 00053
Generated on Tue Jul 26 2022 20:04:05 by 1.7.2