mbed同士の間に線をつなぐだけで通信確認できるやつです。

Dependencies:   mbed

Committer:
YusukeWakuta
Date:
Fri Dec 04 12:24:05 2015 +0000
Revision:
0:465b3bf421b0
mbed?????????????????????????;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YusukeWakuta 0:465b3bf421b0 1 //受信側
YusukeWakuta 0:465b3bf421b0 2 //数字を送受信するだけならmbed間でやるときにはそれぞれputc,getcを使えばできるみたいだが、ヘッダで文字を送ろうとかすると上手くいかない,ちなみにパソコンと通信をするなら
YusukeWakuta 0:465b3bf421b0 3 //printfじゃないとむり無理っぽい
YusukeWakuta 0:465b3bf421b0 4
YusukeWakuta 0:465b3bf421b0 5
YusukeWakuta 0:465b3bf421b0 6 #include "mbed.h"
YusukeWakuta 0:465b3bf421b0 7 #define BUFFER 30
YusukeWakuta 0:465b3bf421b0 8
YusukeWakuta 0:465b3bf421b0 9 Serial rs485(p9,p10);
YusukeWakuta 0:465b3bf421b0 10 Serial pc(USBTX,USBRX);
YusukeWakuta 0:465b3bf421b0 11 PwmOut servo1(p21);
YusukeWakuta 0:465b3bf421b0 12 PwmOut servo2(p22);
YusukeWakuta 0:465b3bf421b0 13 DigitalOut Receiver(p5);
YusukeWakuta 0:465b3bf421b0 14
YusukeWakuta 0:465b3bf421b0 15 int data[BUFFER];
YusukeWakuta 0:465b3bf421b0 16 int servo1_data1[5];
YusukeWakuta 0:465b3bf421b0 17 int servo2_data2[5];
YusukeWakuta 0:465b3bf421b0 18 int num1,num2;
YusukeWakuta 0:465b3bf421b0 19
YusukeWakuta 0:465b3bf421b0 20
YusukeWakuta 0:465b3bf421b0 21 int main(){
YusukeWakuta 0:465b3bf421b0 22 rs485.baud(38400);
YusukeWakuta 0:465b3bf421b0 23 Receiver = 0;
YusukeWakuta 0:465b3bf421b0 24 servo1.period_ms(20);
YusukeWakuta 0:465b3bf421b0 25 servo2.period_ms(20);
YusukeWakuta 0:465b3bf421b0 26 while(1){
YusukeWakuta 0:465b3bf421b0 27
YusukeWakuta 0:465b3bf421b0 28 int available_temp = 0;
YusukeWakuta 0:465b3bf421b0 29 int i = 0;
YusukeWakuta 0:465b3bf421b0 30 if((available_temp = rs485.readable()) == 1){
YusukeWakuta 0:465b3bf421b0 31 // Serial.println(available_temp);
YusukeWakuta 0:465b3bf421b0 32 wait_us(5);
YusukeWakuta 0:465b3bf421b0 33 for(i = 0;i < 4;i++){
YusukeWakuta 0:465b3bf421b0 34 data[i] = rs485.getc();
YusukeWakuta 0:465b3bf421b0 35 //pc.printf("%d\n\r",data[i]);
YusukeWakuta 0:465b3bf421b0 36 }
YusukeWakuta 0:465b3bf421b0 37 wait_us(1);
YusukeWakuta 0:465b3bf421b0 38 }
YusukeWakuta 0:465b3bf421b0 39 for(i = 0;i< 4;i++){
YusukeWakuta 0:465b3bf421b0 40 if(data[i] == 'A' && data[i + 1] != -1){
YusukeWakuta 0:465b3bf421b0 41 servo1.pulsewidth(0.00093 + ((float)data[i + 1] / 180.0) * (0.00235 - 0.00077));
YusukeWakuta 0:465b3bf421b0 42
YusukeWakuta 0:465b3bf421b0 43
YusukeWakuta 0:465b3bf421b0 44 wait_us(1);
YusukeWakuta 0:465b3bf421b0 45 // pc.putc(data[i + 1]);
YusukeWakuta 0:465b3bf421b0 46 }
YusukeWakuta 0:465b3bf421b0 47 if(data[i] == 'B' && data[i+1] != -1){
YusukeWakuta 0:465b3bf421b0 48 pc.printf("%d\n\r",data[i + 1]);
YusukeWakuta 0:465b3bf421b0 49 servo2.pulsewidth(0.00093 + ((float)data[i + 1] / 180.0) * (0.00235 - 0.00077));
YusukeWakuta 0:465b3bf421b0 50 //servo2.pulsewidth(((float)data[i + 1] / 180.0) * 0.01);
YusukeWakuta 0:465b3bf421b0 51 wait_us(1);
YusukeWakuta 0:465b3bf421b0 52 // Serial.println(data[i+1]);
YusukeWakuta 0:465b3bf421b0 53 }
YusukeWakuta 0:465b3bf421b0 54 }
YusukeWakuta 0:465b3bf421b0 55 }
YusukeWakuta 0:465b3bf421b0 56 }