I have been having trouble with my Hybrid mode setup. I'm not sure what exactly is the problem, but I have been led to believe it is my sometimes flawed programming.

(See my other posts if you don't believe me). I am using the provided IR board, and with a regular IR remote setup, for a VCR remote. The outputs are (supposedly) wired into Digital In/Out ports #1-4, and the IR board is receiving power.
Here is my code (it's a bit un-simplified, so propagators of KISS please don't complain too much)
Code:
/* Some globals: */
unsigned char offsensor1;
unsigned char offsensor2;
unsigned char offsensor3;
unsigned char offsensor4;
/* Initialize */
void Initialize(void)
{
InitIRSensor();
/* ... */
}
/* InitIRSensor */
void InitIRSensor(void)
{
offsensor1 = GetDigitalInput(1);
offsensor2 = GetDigitalInput(2);
offsensor3 = GetDigitalInput(3);
offsensor4 = GetDigitalInput(4);
}
/* Autonomous */
void Autonomous(void)
{
unsigned char irsensor1;
unsigned char irsensor2;
unsigned char irsensor3;
unsigned char irsensor4;
int action = 0;
while( IsAutonomous() )
{
irsensor1 = GetSensorInput(1);
irsensor2 = GetSensorInput(2);
irsensor3 = GetSensorInput(3);
irsensor4 = GetSensorInput(4);
if ((irsensor1 + irsensor2 + irsensor3 + irsensor4) >= 2)
{
action = 0;
}
else if (irsensor1)
{
action = 1;
}
else if (irsensor2)
{
action = 2;
}
else if (irsensor3)
{
action = 3;
}
else if (irsensor4)
{
action = 4;
}
else
{
action = 0;
}
HybridAction(action);
}
}
/* GetSensorInput */
unsigned char GetSensorInput(int sensorPort)
{
unsigned char value;
switch(sensorPort)
{
case 1:
{
value = offsignal1;
break;
}
case 2:
{
value = offsignal2;
break;
}
case 3:
{
value = offsignal3;
break;
}
case 4:
{
value = offsignal4;
break;
}
}
return(GetDigitalInput(sensorPort) == value);
}
__________________
2006-2007:
My FIRST Experience - School Mascot for
Team 1652 at the Wisconsin Regional
2007-2008:
FIRST Year on the Team and already in Overdrive - Programmer for Team
1652 (Rob
ot
Ma
fia) at the Wisconsin Regional - Finalists
2008-2009:
Senior Year is Lunacy! - Lead Programmer on Team 1652 (Rob
ot
Ma
fia) - Midwest Regional (Semifinalists), Milwaukee Regional (4th Seed)
AND Rookie Team 2970 (
eSchool eBots) - Milwaukee Regional (3rd Seed, Finalists), Minneapolis North Star Regional (5th Seed, Winners, Rookie All-Star winners), Championship Newton (7th Seed, Semifinalists)
2009-2010:
To be continued... as a Mentor?
I still have the original 2007-2008 FIRST IR sensor prototype. It's sitting on my bookshelf.