1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Robot Project

  1. Mar 16, 2010 #1
    I'm working on a robot for my final project in class. It's your basic line following deal. It has 5 sensors that face the floor on the front and it just follows a track made of black tape.

    I'm just gonna use this one thread for all my issues.

    Current issue: I don't get a certain type of define.

    When I do something like this:

    Code (Text):
    #define setLED5(a) PORTDbits.RD4 = ~a;
    To my knowledge I create a "function" that takes a variable a that sets the port to the inverse of that variable. Is this correct? Also is it possible to define more complex functions? Such as creating a simple calculator function?
  2. jcsd
  3. Mar 17, 2010 #2
    What language is it?
    Yes, it assigns the value of ~a to PORTDbits.RD4.
    More exactly wherever the macro is used, it creates code to do the above.
    It is a good idea to always use parentheses with macro argument, like ~(a), to avoid hard-to chase down bugs due to operator precedence.
    Be always aware that #define is evaluated in preprocessor time.
    You can certainly define rather complex macros, but you do not want to do so without a very good reason. With preprocessor macros it is easy to do mistakes, and hard to nail down bugs.
  4. Mar 17, 2010 #3
    It's written in C. I'll add in the brackets. Thanks.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook