can のテストプログラム これは動く

Dependencies:   mbed

Fork of RS485113R by albatross

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]);
             }
        }
    }    
}