• Support PF! Buy your school textbooks, materials and every day products Here!

Robot Project

  • Thread starter Lancelot59
  • Start date
  • #1
634
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:
#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?
 

Answers and Replies

  • #2
125
0
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.
 
  • #3
634
1
It's written in C. I'll add in the brackets. Thanks.
 

Related Threads for: Robot Project

Replies
2
Views
1K
  • Last Post
Replies
2
Views
911
  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
0
Views
2K
Replies
1
Views
1K
Replies
0
Views
1K
Replies
6
Views
920
  • Last Post
Replies
1
Views
1K
Top