|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
IR not changing state or var
Hello everybody! I have an interesting dilemma!
I have mapped the IR board to Digital Input 1-4 on the RC, and called these to be read in Autonomous. Now, When a button is pressed on the remote in Hybrid, the status of the variable won't change. Though if I am holding the button and reset the robot the variable changes?! I do not believe that Autonomous is being called after the first routine. As in, I think it's just doing the default and kicking out, rather than looking for the variable. I am including the code for the autonomous (I program in EasyC and am using the code box on the right to copy this, by hand, my laptop has not network.) I only copied 1 output code, the others are copied from the "IF (Out0 =1)" block, and modified for their function Code:
#include "Main.h"
void Autonomous (void)
{
unsigned char Out0 = 0 //IR Output 0
unsigned char Out1 = 0 //IR Output 1
unsigned char Out2 = 0 //IR Output 2
unsigned char Out3 = 0 //IR Output 3
signed char count = 0 //Smart Counter
while (1 == 1)
{
Out0 = GetDigitalInput (1);
Out1 = GetDigitalInput (2);
Out2 = GetDigitalInput (3);
Out3 = GetDigitalInput (4);
if (Out0 = 0)
{
if (Out1 = 0)
{
if (Out2 = 0)
{
if (Out3 = 0)
{
// ADD DRIVE CODE HERE
for (count; count = 0; count ++)
{
Wait (300);
}
for (count; count = 1; count ++)
{
Wait (200);
}
for (count; count = 2; count ++)
{
Wait (200);
}
for (count; count = 3; count ++)
{
Wait (200);
}
for (count; count = 4; count ++)
{
Wait (1500);
}
for (count; count = 5; count ++)
{
Wait (500);
}
for (count; count = 6; count ++)
{
Wait (500);
}
for (count; count = 7; count ++)
{
//STOP HERE!
}
}
}
}
}
if (Out0 ==1) //Button 1 pressed
{
Out1 = 0;
Out2 = 0;
Out3 = 0;
SetDigitalOutput (15, 1) // LED1 ON
SetDigitalOutput (16, 0) //LED2 OFF
SetDigitalOutput (17, 0) // LED 3 OFF
SetDigitalOutput (18, 0) //LED4 OFF
if (count <=3)
{
//SET RELAYS OFF!!!
count = 4;
}
else
{
count = count;
}
break;
}
}
//COPY OUT0 AND MODIFY FOR OTHER MODES
// END AUTO
}
|
|
#2
|
||||
|
||||
|
Re: IR not changing state or var
I would like to help but I can not understnd what your code is supposed to do, could you clarify it?
|
|
#3
|
|||||
|
|||||
|
Re: IR not changing state or var
Your first few if statements are setting variables to zero instead of testing for being equal to zero. Replace the = 0 with == 0 to fix that.
I don't understand what the for statements are supposed to be doing. The initialization does nothing, and I suspect you've made the same = vs. == error in the continuation check. |
|
#4
|
||||
|
||||
|
Re: IR not changing state or var
Thanks.
The FOR statements are only to keep the counter time. There is a 7-step autonomous that can be interrupted by the IR commands. The counter is so it can pick up where it left off. Otherwise, I'll change the operators and cross my fingers! |
|
#5
|
||||
|
||||
|
Re: IR not changing state or var
Quote:
|
|
#6
|
|||
|
|||
|
Re: IR not changing state or var
I'm sure pretty your while loop isn't going to do anything because auto gets called in main.c every 26ms or so. so even though you are trying to get stuck in the while loop with 1==1, your not stuck because auto will just get called again.
I'm not entirely sure, but I think this is one problem. (I'm kinda new at this) |
|
#7
|
||||
|
||||
|
Re: IR not changing state or var
BHOP - easyC / WPILIB will only call the autonomous() function once when the field switches. Also, everything you do in easyC / WPILIB runs at full speed in the user processor. So, his while(1==1) will loop as fast as it can. Any commands going to the Master Processor ex. PWM/OI will sync every 26ms due to the nature of how the master processor is programmed by IFI. But, in this case all the inputs are tied directly to the user processor so the 26ms loop doesn't apply.
|
|
#8
|
|||
|
|||
|
Re: IR not changing state or var
thanks for that info...i've never tried easyc
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Hawaii Gov. Lingle State of State speech-FIRST and STEM | MoeMom | FIRST In the News... | 0 | 29-01-2008 17:04 |
| Code not changing robots function! | popo308 | Programming | 3 | 25-01-2008 11:17 |
| OI digital inputs and Var res switches. | Gdeaver | Control System | 1 | 16-10-2007 13:17 |
| Encoders not changing... | paulcd2000 | Programming | 28 | 18-02-2007 08:34 |
| ::CHANGING SERVERS:: | Brandon Martus | General Forum | 5 | 21-12-2001 10:33 |