I am new to programming electronics and using them. I wrote this code to light an LED specified, and it compiles and uploads, but never runs.
#define SKIP 0xA
#define MAX_PINS 3
#define NUM_LEDS_STATES 7
#define PIN1 3
#define PIN2 4
#define PIN3 5
int PINS[ MAX_PINS ] = { PIN1 , PIN2 , PIN3 };
int Pin_Mode[ NUM_LEDS_STATES ][ MAX_PINS ] = {// PIN1 PIN3 PIN3
{ OUTPUT , OUTPUT , OUTPUT }, // ALL OFF
{ INPUT , OUTPUT , OUTPUT }, // LED 1
{ INPUT , OUTPUT , OUTPUT }, // LED 2
{ OUTPUT , OUTPUT , INPUT }, // LED 3
{ OUTPUT , INPUT , OUTPUT }, // LED 4
{ OUTPUT , INPUT , OUTPUT }, // LED 5
{ OUTPUT , OUTPUT , INPUT }, // LED 6
};
int Pin_State[ NUM_LEDS_STATES ][ MAX_PINS ] = {//PIN1 PIN3 PIN3
{ LOW , LOW , LOW }, // ALL OFF
{ SKIP , HIGH , LOW }, // LED 1
{ SKIP , LOW , HIGH }, // LED 2
{ LOW , HIGH , SKIP }, // LED 3
{ HIGH , SKIP , LOW }, // LED 4
{ LOW , SKIP , HIGH }, // LED 5
{ HIGH , LOW , SKIP }, // LED 6
};
void change_led( int led ) {
for( int loc=0; loc < MAX_PINS; loc++ ) {
pinMode( PINS[ loc ], Pin_Mode[ led ][ loc ] );
if( Pin_State[ led ][ loc ] != SKIP ) {
digitalWrite( PINS[ loc ], Pin_State[ led ][ loc ] );
}
}
}
void setup() { }
void loop() {
for( int run=1; run < NUM_LEDS_STATES; run++ ) {
change_led( run );
delay( 50 );
}
}
If there a better way to write this please let me know.