Руслан Бредун / Mbed 2 deprecated STM32-MC_node

Dependencies:   mbed Watchdog stm32-sensor-base2

Revision:
4:f6e22dd39313
Parent:
3:96fcb3b041eb
Child:
5:97117a837d2c
--- a/main.cpp	Tue Jul 07 15:02:22 2020 +0000
+++ b/main.cpp	Sat Jul 18 14:59:04 2020 +0000
@@ -1,63 +1,122 @@
 #include <global.h>
 
 Serial pc(UART1_TX, UART1_RX);
-Timer timer; 
+Timer timer;
 
-int main() {
+int main()
+{
+//
+    DigitalOut led(DEBUG_LED);
+    DigitalOut led2(DE_TXD_1, 1); // activate transmitting rs485-1
+//   led = false;
+//   while (true) {
+//        led = !led;
+//        wait_ms(BLINKING_RATE);
+//        pc.printf("Distance:");
+//    }
+//
 
 #if TEST_ULTRASONIC
-
+    int time_to_check_us = 1000;
     JSN_SR04 sensor1(TIM1_CH2, TRIG_PA8_OUT);
-    JSN_SR04 sensor2(TIM1_CH2, TRIG_PB15_OUT);
-    JSN_SR04 sensor3(TIM1_CH2, TRIG_PB14_OUT);
-    sensor1.setRanges(10, 110);
-    sensor2.setRanges(10, 110);
-    sensor3.setRanges(10, 110);
-    pc.printf("Min. range = %g cm\n\rMax. range = %g cm\n\r",sensor1.getMinRange(), sensor1.getMaxRange());
+//    JSN_SR04 sensor1(TIM1_CH2, TRIG_PB14_OUT); //no triger signal
+//    JSN_SR04 sensor1(TIM1_CH2, TRIG_PB15_OUT);
+    sensor1.setRanges(30, 200);
+//    sensor2.setRanges(30, 200);
+//    sensor3.setRanges(30, 200);
+//    pc.printf("Min. range = %g cm\n\r",sensor1.getMinRange());
     while(true) {
-         timer.reset();
-          timer.start();
-          sensor1.startMeasurement();
-          sensor2.startMeasurement();
-          sensor3.startMeasurement();
-          while(!sensor1.isNewDataReady() || !sensor2.isNewDataReady() || !sensor3.isNewDataReady()) {
-              // wait for new data
-              // waiting time depends on the distance
-          }
-          pc.printf("Distance: %5.1f mm %5.1f mm %5.1f mm \r\n", sensor1.getDistance_mm(),sensor2.getDistance_mm(),sensor3.getDistance_mm());
-          timer.stop();
-          wait_ms(50 - timer.read_ms()); // time the loop
-      }
-  
+        timer.reset();
+        timer.start();
+        sensor1.startMeasurement();
+        while (sensor1.isNewDataReady() == false && timer.read_ms() < time_to_check_us) {
+//           pc.printf("c1");
+           // if (sensor1.isNewDataReady() == true) {
+//                pc.printf("Distance1: %5.1f mm \r\n", sensor1.getDistance_cm());
+//            }
+        }
+        //timer.reset();
+//        timer.start();
+////        pc.printf("\r\n");
+//        sensor2.startMeasurement();
+//        while (sensor2.isNewDataReady() == false && timer.read_ms() < time_to_check_us) {
+////                pc.printf("c2");
+//        }  
+//        timer.reset();
+//        timer.start();
+//        pc.printf("\r\n");
+        //sensor3.startMeasurement();
+//        while (sensor3.isNewDataReady() == false && timer.read_ms() < time_to_check_us) {
+//                pc.printf("c3");
+//        }       
+//        
+//        pc.printf("\r\n");         
+//        pc.printf("Distance1: %5.1f mm -- Distance2: %5.1f mm -- -- Distance3: %5.1f mm \r\n", sensor1.getDistance_cm()), sensor2.getDistance_cm(), sensor3.getDistance_cm());
+        pc.printf("Distance1: %5.1f mm \r\n", sensor1.getDistance_cm());
+
+        timer.stop();
+//        wait_ms(150 - timer.read_ms());
+
+        //
+//          timer.reset();
+//          timer.start();
+//
+//          sensor2.startMeasurement();
+//          pc.printf("Distance2: %5.1f mm \r\n", sensor2.getDistance_cm());
+//
+//          timer.stop();
+//          wait_ms(500 - timer.read_ms());
+//
+//          timer.reset();
+//          timer.start();
+//
+//          sensor3.startMeasurement();
+//          pc.printf("Distance3: %5.1f mm \r\n", sensor3.getDistance_cm());
+//
+//          timer.stop();
+        //wait_ms(500 - timer.read_ms()); // time the loop
+
+//
+//          wait_ms(500 - timer.read_ms()); // time the loop
+
+    }
+
 #endif
 
 #if TEST_ENCODERS
-
-   AS5045Controller encoder_1(SP1_NSS1);
-   AS5045Controller encoder_2(SP1_NSS2); 
-   while(1)
-   {
-        int encoder_1_Value = encoder_1.Read();
+int min1_value = 2000;
+int max1_value = 0;
+    AS5045 encoder_1(SP1_NSS1);
+    AS5045 encoder_2(SP1_NSS2);
+    while(1) {
+        led = !led;
+        int encoder_1_Value = encoder_1.getPosition();
+        wait_ms(30);
+        int encoder_2_Value = encoder_2.getPosition();
+        wait_ms(30);
+        //encoder_1_Value =
+        //if( encoder_1_Value.IsValid() && encoder_2_Value.IsValid() )
+        
+        if(encoder_1_Value < min1_value) min1_value = encoder_1_Value;
+        if(encoder_1_Value > max1_value) max1_value = encoder_1_Value;
+        pc.printf("Sensor Values = %d --- %d \n\r",encoder_1_Value, encoder_2_Value ); //
+        //else
+        //pc.printf("Invalid data read");
 
-        int encoder_2_Value = encoder_2.Read();
-        if( encoder_1_Value.IsValid() && encoder_2_Value.IsValid() )
-            pc.printf("Sensor Values = %d\n\r",encoder_1_Value ,encoder_2_Value  );
-        else
-            pc.printf("Invalid data read");
- 
-        Thread::wait(2);
-   }
-  
-#endif 
+        //wait_ms(50);
+    }
+
+#endif
 
 # if TEST_IR
-
-    E18_D80NK infared (<your pin>);
+    //E18_D80NK infared1 (IR1_PB12_OUT);
+//    E18_D80NK infared2 (IR2_PB13_OUT);
+//    while (true) {
+//        pc.printf ("Is there any obstacle: %d ---- %d ",  infared1.checkObstacle(),infared2.checkObstacle() );
+//        pc.printf ("\n\r");
+//    }
 
-    while (true) {
-        pc.printf ("Is there any obstacle:", infared.checkObstacle ());
-    }
-    
+
 #endif
 
 }