Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

edr1c

  • 2 years ago

Hello, I've encountered some C code interfacing with the distance sensor, but i find some parts of the code abit confusing. any1 can explain to me?

  • This Question is Closed
  1. edr1c
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    the code is supposed to force the microcontroller to produce outputs based on 8 different voltage interval with distance 6-22cm, 2cm per interval. the closer the object is to the sensor, the motor will run at higher speed, 0 speed is off and 8 speed is fastest. part of the code is as below: if(result < dist_6cm && result > dist_8cm){ SetDCPWM1( speed_8 ); PORTD = 0xFF; } why would the if uses <6 and'ed with >8? if the voltage should fall in between the interval 6-8cm, shouldnt the code be '...> dist_6 && ...< dist_8' ?

  2. e.mccormick
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Yes, that seems illogical. For it to be less than a low number and more than a high number, both at once, makes no sense.

  3. rsmith6559
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Although it's not written clearly, it will execute like: if( ( result < dist_6cm ) && ( result > dist_8cm ) ) The less than and greater than evaluate independently, and if either is false the if statement fails.

  4. e.mccormick
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    @rsmith6559 Exactly. It is only true is result is less than 6cm AND greater than 8cm. That seems contradictory. However, I would have to know what the sensor returns and what the values of dist_[6,8]cm are to really be sure if this contradictory.

  5. Not the answer you are looking for?
    Search for more explanations.

    • Attachments:

Ask your own question

Sign Up
Find more explanations on OpenStudy
Privacy Policy