mbed同士の間に線をつなぐだけで通信確認できるやつです。
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:465b3bf421b0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Dec 04 12:24:05 2015 +0000 @@ -0,0 +1,56 @@ +//受信側 +//数字を送受信するだけなら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]); + } + } + } +} \ No newline at end of file