Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   we need help with PWM problem in autonomous (http://www.chiefdelphi.com/forums/showthread.php?t=63145)

steve d 02-02-2008 20:12

we need help with PWM problem in autonomous
 
We're getting strange pwm trouble in Autonomous Mode. If I put pwm13 = pwm14 = 127 in User_Autonomous_Code(), the speed controller's LED are green and motors turn. If I use pwm13 = pwm14 = 0 or if I use pwm13 = pwm14 = 255, both make LEDs turn off and motors spin opposite. If I do this in the default routine, it works right: 127, LEDs are orange; 255,green and 0 red.
Can anyone tell my why the PWMs act different in Default and Autonomous?
here's the code in User_Autonomous_Code() :

...
/* Add your own autonomous code here. */

Remote_Controls();
Generate_Pwms(pwm13,pwm14,pwm15,pwm16);
Putdata(&txdata); /* DO NOT DELETE, or you will get no PWM outputs! */
...
}

void Remote_Controls()
{

// if Remote # 2 is pressed, stop
if (rc_dig_in02==0)
{
pwm13 = pwm14 = 127;
pwm15 = pwm16 = 127;
}

// if Remote # 3 is pressed, backup
if (rc_dig_in03==0)
{
pwm13 = pwm14 = 0;
pwm15 = pwm16 = 0;
}

// if Remote # 4 is pressed, fwd
if (rc_dig_in04==0)
{
pwm13 = pwm14 = 255;
pwm15 = pwm16 = 255;
}

}

Laaba 80 02-02-2008 20:23

Re: we need help with PWM problem in autonomous
 
in your code where it says

if (rc_dig_in13==0)

You need to put == 1 If you are looking for 0 that means you never pressed a button. If you press the stop button with your code it makes it 1, so it skips the if statement you want it to go to, and goes to the reverse one. I think I explained it ok, if I didnt, ley me know.
Joey

steve d 02-02-2008 21:23

Re: we need help with PWM problem in autonomous
 
rc_dig_in13==0 means the switch is closed; on the robot controller's digital input/output port, the white and black lines are connecting.
But that has nothing to do with why pwm13=127 makes the speed controller go full forward, like I said above.

psy_wombats 02-02-2008 21:26

Re: we need help with PWM problem in autonomous
 
When you say pwm13=127, is that within one of the IR ifs or just a direct assignment? There should be no reason the code is different in the two functions, it is very strange.

steve d 02-02-2008 21:39

Re: we need help with PWM problem in autonomous
 
At first in the IR ifs, but when it was acting strange,I began to try it everyway I could think of, finally even with direct assignments, printing out the values to make sure, and it always acted like that. I cut and paste it into Default_Routine() and it was fine. I wonder if somehow I'm generating PWMs to often or something, but I don't see where.

psy_wombats 02-02-2008 21:46

Re: we need help with PWM problem in autonomous
 
Oh, sorry I didn't notice before... Go look at the sticky topic about PWM 13-16 replacement code... Those ones are different from the rest, if you'll read. Or just change the PWMs to a lower value and see what happens. That's almost definitely the issue.

Alan Anderson 03-02-2008 11:41

Re: we need help with PWM problem in autonomous
 
Quote:

Originally Posted by steve d (Post 691012)
rc_dig_in13==0 means the switch is closed; on the robot controller's digital input/output port, the white and black lines are connecting.

The comments in the code seem to indicate that you're using the IR sensor board. That board doesn't provide a switch closure to ground. It provides a voltage output: 0 means the signal is not detected, and 1 means it is. If your digital inputs are coming from the IR board, you do have your tests backwards.

steve d 03-02-2008 12:46

Re: we need help with PWM problem in autonomous
 
Thanks. No, for troubleshooting I was using a jumper on the inputs, no IR reciever connected. That's why if digtal in ==0.


All times are GMT -5. The time now is 09:40.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi