Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed Watchdog stm32-sensor-base2
Diff: main.cpp
- 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 }