主にオムニです。

Dependencies:   EC mbed HCSR04

Fork of asimawari by yuto kawamura

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers jyairo.h Source File

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