![]() |
Robot not doing what we need it to, and printfs aren't working
So, first of all, our printf's aren't working. MPlab displays a "type qualifier mismatch in assignment" error. Any ideas why they aren't working? They also are not being displayed, which could be attributed to our next problem.
Our robot is not doing what we are telling it to do, at all. We are running Kevin's code. teleop.c below. Code:
/******************************************************************************* |
Re: Robot not doing what we need it to, and printfs aren't working
The only uncommented printf is: printf("IFI User Processor Initialized ...\r\n");
The other ones are commented out. Does that error have a line number with it? |
Re: Robot not doing what we need it to, and printfs aren't working
All of them give the error (when they are uncommented)
I commented most of them out when I started running into the error, as commenting them out gave me less errors, and made me happier. I kept t one so I knew when I had fixed it (which hasn't happened, of course). |
Re: Robot not doing what we need it to, and printfs aren't working
Which line does it say that error is on?
|
Re: Robot not doing what we need it to, and printfs aren't working
In your tank function, you don't set any PWM values, therefore the PWMs will still be what they were before the function was called. When you first turn the robot on, it won't move. Once the PWMs get set in the mecanum function, they will continue with the same value once you start calling the tank function again.
In the mecanum function, the calculations can very easily overflow a char. You'll need to protect against that. I don't know if that is the only problem, but it will definitely cause you problems. |
Re: Robot not doing what we need it to, and printfs aren't working
Quote:
|
Re: Robot not doing what we need it to, and printfs aren't working
Your print statements have mixed types where you attempt to print unsigned char (e.g., pwm01) and double (wFL) types as ints (%d). Typecast the arguments (int).
Statements such as: pwm01 = (int)wFL + 127; start with a double, typecast it to int, then assign it to unsigned char as opposed to keeping your calculation as double then typecasting the result to unsigned char. Are you doing that to speed things up? Just curious, not a problem. |
Re: Robot not doing what we need it to, and printfs aren't working
Quote:
I don't have the entire error anymore, but it said the error was "type qualifier mismatch in assignment" on the printf line in teleop.c. Quote:
That being said, this is almost the exact same mechanum code we used at the competition. It should work, but it isn't. How would we stop it from overflowing the chars? Quote:
|
Re: Robot not doing what we need it to, and printfs aren't working
Quote:
If the prinfts are still not working after ignoring the warnings, try printing something simple like printf("Hello World"); Also your wFL values are floats so use %f instead of %d. Quote:
|
| All times are GMT -5. The time now is 13:45. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi