|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
OI LEDs
Hi, team 1153 has been trying to get our OI LEDs, Pwm1_green, Pwm1_red, Relay1_green etc., to work when a button is pressed.
We have tried many various solutions but the only lights we could get to work properly in Manual mode was the Switch LEDS. The only light we get on in Manual is Pwm1_green and whenever the aux1 button is pressed on the Port 1 joystick will it change and it changes in a type of bianary going from green to red to green and red to pwm2_green and etc in that order. We have a feeling that the code causing the OI to work under that system is interferring with our code but we couldn't find it anywhere in the code. If you could please help us get the Red LEDs to work, it would be greatly appreciated. Here is our code in question if it will help: Code:
if (p4_sw_trig == 1) {ElevW= 0; DesiredHeight= 0; } //Lowest
else if (p4_sw_top == 1) {ElevW= 1; DesiredHeight= 20; } //Medium
else if (p4_sw_aux1 == 1) {ElevW= 2; DesiredHeight= 50; } //High
else if (p4_sw_aux2 == 1) {ElevW= 3; DesiredHeight= 100; } //Very High
if (ElevW == 0)
{
//printf("ELEVW=0\n\r");
Pwm1_red = 1; //Pwm1_red LED is on
Pwm1_green= Pwm2_green= Pwm2_red= Relay1_green= 0; // LEDs off
Relay1_red= Relay2_green= Relay2_red= 0; //LEDs off
}
else if (ElevW == 1)
{
//printf("ELEVW=1\n\r");
Pwm2_red = 1; //Pwm2_red LED is on
Pwm1_green= Pwm1_red= Pwm2_green= Relay1_green= 0; // LEDs off
Relay1_red= Relay2_green= Relay2_red= 0; //LEDs off
}
else if (ElevW == 2)
{
//printf("ELEVW=2\n\r");
Relay1_red = 1; // Relay1_red LED is on
Pwm1_green= Pwm1_red= Pwm2_green= Pwm2_red= 0; //LEDs off
Relay1_green= Relay2_green= Relay2_red= 0; //LEDS off
}
else if (ElevW == 3)
{
//printf("ELEVW=3\n\r");
Relay2_red = 1; //Relay2_red LED is on
Pwm1_green= Pwm1_red= Pwm2_green= Pwm2_red= 0; //LEDs off
Relay1_green= Relay1_red= Relay2_green= 0; //LEDs off
}
|
|
#2
|
|||
|
|||
|
Re: OI LEDs
From IFI docs on the software/OI
Quote:
Also, the LED byte in the txdata packet is shared: Code:
#define User_Mode_byte txdata.LED_byte1.data #define Pwm1_green txdata.LED_byte1.bitselect.bit0 #define Pwm1_red txdata.LED_byte1.bitselect.bit1 #define Pwm2_green txdata.LED_byte1.bitselect.bit2 #define Pwm2_red txdata.LED_byte1.bitselect.bit3 #define Relay1_red txdata.LED_byte1.bitselect.bit4 #define Relay1_green txdata.LED_byte1.bitselect.bit5 #define Relay2_red txdata.LED_byte1.bitselect.bit6 #define Relay2_green txdata.LED_byte1.bitselect.bit7 |
|
#3
|
|||
|
|||
|
Re: OI LEDs
Thank you very much for your help. We had User_Mode_byte set to our autonomous selector to show which autonomous code we were running. It seems odd that we can only do lights or user number. Do you know of any way to display the lights and the user number on the OI display?
|
|
#4
|
||||
|
||||
|
Re: OI LEDs
when you use the LED control pins in port 1 and 3....
a 1 is off and a 0 is on for the external led the pins are "ground" you will need to wire up a power and get some resistors on it as well |
|
#5
|
|||
|
|||
|
Re: OI LEDs
Quote:
For example: Code:
ifi_aliases.h:311: #define user_display_mode rxdata.rc_mode_byte.mode.user_display
if (user_display_mode == 0) /* User Mode is Off */
{
set LED code
}
:
.
{somewhere else in the code}
if (user_display_mode == 1) /* User Mode is On */
{
User_Mode_byte = autonomous selectore
}
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| OI and LEDs | Precious | Control System | 1 | 23-01-2007 19:53 |
| LEDs on CMUCam | JJMax7 | Programming | 2 | 03-02-2006 12:28 |
| Lighted LEDs | Jaime65 | Technical Discussion | 8 | 12-01-2005 09:48 |
| cooding(leds) | hi_im_sean | Programming | 2 | 05-02-2003 07:02 |