hiroya taura
/
CAN_R
can のテストプログラム これは動く
Fork of RS485113R by
main.cpp
- Committer:
- YusukeWakuta
- Date:
- 2015-12-04
- Revision:
- 0:465b3bf421b0
- Child:
- 1:54398a174a10
File content as of revision 0:465b3bf421b0:
//受信側 //数字を送受信するだけならmbed間でやるときにはそれぞれputc,getcを使えばできるみたいだが、ヘッダで文字を送ろうとかすると上手くいかない,ちなみにパソコンと通信をするなら //printfじゃないとむり無理っぽい #include "mbed.h" #define BUFFER 30 Serial rs485(p9,p10); Serial pc(USBTX,USBRX); PwmOut servo1(p21); PwmOut servo2(p22); DigitalOut Receiver(p5); int data[BUFFER]; int servo1_data1[5]; int servo2_data2[5]; int num1,num2; int main(){ rs485.baud(38400); Receiver = 0; servo1.period_ms(20); servo2.period_ms(20); while(1){ int available_temp = 0; int i = 0; if((available_temp = rs485.readable()) == 1){ // Serial.println(available_temp); wait_us(5); for(i = 0;i < 4;i++){ data[i] = rs485.getc(); //pc.printf("%d\n\r",data[i]); } wait_us(1); } for(i = 0;i< 4;i++){ if(data[i] == 'A' && data[i + 1] != -1){ servo1.pulsewidth(0.00093 + ((float)data[i + 1] / 180.0) * (0.00235 - 0.00077)); wait_us(1); // pc.putc(data[i + 1]); } if(data[i] == 'B' && data[i+1] != -1){ pc.printf("%d\n\r",data[i + 1]); servo2.pulsewidth(0.00093 + ((float)data[i + 1] / 180.0) * (0.00235 - 0.00077)); //servo2.pulsewidth(((float)data[i + 1] / 180.0) * 0.01); wait_us(1); // Serial.println(data[i+1]); } } } }