Ask your own question, for FREE!
Computer Science 8 Online
OpenStudy (anonymous):

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?

OpenStudy (anonymous):

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' ?

OpenStudy (e.mccormick):

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.

OpenStudy (rsmith6559):

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.

OpenStudy (e.mccormick):

@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.

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!