今までのジョイスティックの入力を段階分けしていた方式から、アナログ値をできる限りそのまま使用する方式に変更しました。

Dependencies:   mbed-rtos mbed

Fork of ControlMain2017 by albatross

Revision:
7:59ddbe239835
Parent:
6:7484315ba88a
Child:
8:dbc8c87dac78
diff -r 7484315ba88a -r 59ddbe239835 main.cpp
--- a/main.cpp	Fri Mar 18 06:16:21 2016 +0000
+++ b/main.cpp	Fri Nov 25 09:42:13 2016 +0000
@@ -1,27 +1,28 @@
 //中央can program
 
 #include "mbed.h"
+#include "BufferedSoftSerial.h"
 #define WAIT_LOOP_TIME 0.1
 #define YOKUTAN_DATAS_NUM 4
 #define IMPUT_DATAS_NUM 2
 #define SEND_DATAS_CAN_ID 100
-#define SEND_DATAS_TIME 0.1
-#define THRESHOLD_OH_VALUE 0.14
-#define CALC_CADENCE_TIME 0.05
+#define SEND_DATAS_TIME 0.15 //0.1
+#define READ_INPUT_TIME 0.2
 
 CAN can_R(p30,p29);
 CAN can_L(p9,p10);
+Serial pc(USBTX,USBRX);
+//BufferedSoftSerial toKeikiSerial(p26,p25);
 Serial toKeikiSerial(p13,p14);
-Serial pc(USBTX,USBRX);
 DigitalIn eruron_R(p22);
 DigitalIn eruron_L(p20);
 DigitalIn drug_R(p23);
 DigitalIn drug_L(p19);
 DigitalOut myled1(LED1);
 DigitalOut myled2(LED2);
-Ticker sendDatasTicker;
-Ticker cadenceTicker;
-Timer cadenceTimer;
+//Ticker sendDatasTicker;
+Ticker inputControlValuesTicker;
+//Ticker testSSTicker;
 AnalogIn p(p15);
 AnalogIn q(p16);
 
@@ -75,38 +76,32 @@
     can_L.write(CANMessage(SEND_DATAS_CAN_ID, inputDatas_L, IMPUT_DATAS_NUM));
     for(int i = 0; i < YOKUTAN_DATAS_NUM; i++){
         toKeikiSerial.putc(yokutanDatas_R[i]);
+        wait_ms(10);
         toKeikiSerial.putc(yokutanDatas_L[i]);
+        wait_ms(10);
     }
     for(int i = 0; i < IMPUT_DATAS_NUM; i++){
         toKeikiSerial.putc(inputDatas_R[i]);
+        wait_ms(10);
+        pc.printf("%d\n\r",inputDatas_R[i]);//%cで出力すると見えない系の文字が出る
         toKeikiSerial.putc(inputDatas_L[i]);
+        wait_ms(10);
+        pc.printf("%d\n\r",inputDatas_L[i]);
     }
     toKeikiSerial.putc(cadence);
+    wait_ms(10);
     pc.printf("test\n\r");
 }
-
-void calcCadence(){
-    //pc.printf("%f,%f\n\r",p.read(),q.read());
-    if(p.read() > THRESHOLD_OH_VALUE) stateP = true;
-    else stateP = false;
-    if(q.read() > THRESHOLD_OH_VALUE) stateQ = true;
-    else stateQ = false;
-    if((stateP == true && stateP_old == false) || 
-        stateQ == true && stateQ_old == false){
-        cadenceTimer.stop();
-        cadence = (char)30.0/cadenceTimer.read();
-        pc.printf("Cadence:%i\n\r",cadence);
-        cadenceTimer.reset();
-        cadenceTimer.start();
-    }
-    stateP_old = stateP;
-    stateQ_old = stateQ;
-}        
+//void testSS(){
+//    test.putc(50);
+//    wait_ms(10);
+//}
+       
 
 void init(){
-    cadenceTimer.start();
-    cadenceTicker.attach(calcCadence, CALC_CADENCE_TIME);
-    sendDatasTicker.attach(SendDatas,SEND_DATAS_TIME);
+    toKeikiSerial.baud(9600);
+//    sendDatasTicker.attach(SendDatas,SEND_DATAS_TIME);
+    inputControlValuesTicker.attach(InputControlValues,READ_INPUT_TIME);
     for(int i = 0; i < IMPUT_DATAS_NUM; i++){
         inputDatas_R[i] = 0;
         inputDatas_L[i] = 0;
@@ -132,11 +127,16 @@
 int main(){
     init();
     while(1){
-        InputControlValues();
+//        for(int i=0; i<IMPUT_DATAS_NUM; i++){
+//            test.putc(inputDatas_R[i]);
+//            wait(0.1);
+//        }
         wait_us(10);
         receiveDatas();
+        SendDatas();
         //toString_R();
 //        toString_L();
+
         wait(WAIT_LOOP_TIME);
     }
 }
\ No newline at end of file