相互通信動くやつ、レシーバー

Dependencies:   mbed ADXL345_I2C

main.cpp

Committer:
taurin
Date:
2015-12-04
Revision:
0:fafac0045ad3
Child:
1:563b7d0b896f

File content as of revision 0:fafac0045ad3:

//相互通信確認用
#include "mbed.h"
#define BUFFER 30

Serial rs485(p9,p10);
Serial pc(USBTX,USBRX);
DigitalOut Receiver(p5);
PwmOut servo1(p21);
PwmOut servo2(p22);

int counter = 0;
int servo_deg1 = 0;
int servo_deg2 = 0;

void rs485_rx()
{
    int rec_data = rs485.getc();
    switch(rec_data){
    case 'A':    
        servo_deg1 = rs485.getc();
        pc.printf("counter1:%d\n\r",servo_deg1);
        break;
    case 'B':
        servo_deg2 = rs485.getc();
        pc.printf("counter2:%d\n\r",servo_deg2);
        break;
    case 'C':
        Receiver = 1;
        wait_ms(1);
        rs485.putc(counter++);
        wait_ms(1);
        Receiver = 0;
        break;
    default:
        wait_us(5);
        pc.printf("%d\n\r",rec_data);
    }
}

int main()
{
    Receiver = 0;
    pc.printf("Receiver\n\r");
    rs485.baud(38400);
    servo1.period_ms(20);
    servo2.period_ms(20);
    rs485.attach(rs485_rx, Serial::RxIrq);
    while(1){
        servo1.pulsewidth(0.00093 + (servo_deg1 / 180.0) * (0.00235 - 0.00077));
        servo2.pulsewidth(0.00093 + (servo_deg2 / 180.0) * (0.00235 - 0.00077));
    }
}