Using LTC1485 simple transmit program

Dependencies:   mbed

Revision:
0:5f4b6ac9df07
Child:
1:db0469ab641f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Feb 25 07:32:42 2017 +0000
@@ -0,0 +1,80 @@
+/*--- 送信側 ---*/
+#include "mbed.h"
+#include "Serial.h"
+DigitalOut led(PA_12);
+DigitalOut myled(LED1);
+DigitalOut rede(PA_8);
+
+DigitalIn address1(PF_0);
+DigitalIn address2(PB_1);
+DigitalIn address4(PB_6);
+DigitalIn address8(PB_7);
+
+Serial myserial(PA_9,PA_10);
+
+void send_rs485();
+void onInterrupt();
+
+int index = 0;
+int buffer[5] = {0};
+
+int main() {
+    rede=0;
+    int address = address1<<0 | address2<<1 | address4<<2 | address8<<3;
+ //   int rs485_data[4]={0};
+    myserial.attach(&onInterrupt,Serial::RxIrq);
+    while(1){
+        if(address == 0x01){
+            myled = 1;
+//          rs485_data[0]=buffer[1];
+//          rs485_data[1]=buffer[2];
+//          rs485_data[2]=buffer[3];
+//          rs485_data[3]=buffer[4];
+        }else{
+            myled=0;
+        }
+        send_rs485();
+        led=1;
+        wait(0.05);
+        led=0;
+        wait(0.05);
+    }
+}
+
+void send_rs485(){
+    int TxData[5] = {0};
+    
+    /*データ準備*/
+    TxData[0] = '#';//TAG
+    TxData[1] = 0x41;//ID
+    TxData[2] = 0x41;//data
+    TxData[3] = 0x41;//data
+    TxData[4] = (TxData[0]^TxData[1]^TxData[2]^TxData[3]);
+    
+    /*送信*/
+    rede = 1;
+    for(int i=0;i<=4;i++){
+        myserial.putc(TxData[i]);
+    }
+    wait_us(2500);
+    rede = 0;
+}
+
+void onInterrupt(){
+    myled=1;
+    wait(0.01);
+    myled=0;
+    wait(0.01);
+    char data = myserial.getc();
+    if(data == '#'){
+        index = 1;
+        return;
+    }
+    if(index != 0){
+        buffer[index-1] = data;
+        if(index == 5){
+            index = 0;
+        }
+        index ++;
+    }
+}
\ No newline at end of file