Dumb Question - Global variable not holding value on change

Everything as requested, this code compile and runs the problem as noted above is in the armed 2 if statement.

Output from serial :

the garbage characters are from the print right after the arm 2 check.

#include <I2C.h>

// FOR RFID Reader

#include <SoftwareSerial.h>
#define RFID_READ 0x01
#define txPin 6
#define rxPin 10

// define Devantech LCD address

#define DLCD 0x63

int int_sys = 1;
int y = 0;
int z = 0;
int err_c = 0;
int i;

int second=00; 
int minut; 
int hour=0; // declare time variables
int armed = 0;

int go_boom = 0;
int big_boom = 0;
int Arm_card[4];
int Test_val[4] = {1,248,124,0};

// canned messages

char message[10] = "Hello Hal";
char message2[15] ="Arm the System";
char message3[15] ="Verfiying Code";
char boom[2] ="b";
char message4[14] ="Arming Failed";

// For data from RFID tags

SoftwareSerial mySerial(rxPin, txPin);

int val;
int runs = 0;
char Set1[5];
char Set2[5];
char Set3[5];
char Set4[5];
char sec[3];
char minu[3];
char hou[3];
char zer[2] = "0";

void setup()
{
  I2c.begin();
  Serial.begin(9600);
  mySerial.begin(9600);
  pinMode(txPin, OUTPUT);    
  pinMode(rxPin, INPUT);
  minut = 5;  
}

void loop()
{
  int eXtime = 0;  
  while (big_boom == 0)
    {
     while (int_sys == 1)
       { 
        clr_scr();
        backlight_on();
        LCD_Message(message,10,1);
        LCD_Message(message2,15,2);
        delay(3000); //make em wait
        // debug only
        // I2c.scan();
        int_sys = 2;
       }

       Get_card();
       check_arm();

       if (armed ==2)
         {
          clr_scr();
          LCD_Message(message4,14,1);
          eXtime = eXtime + 6;
          Serial.print(eXtime);
          Serial.println(" in loop xtime val"); 
          delay (5000);
          } 
        Serial.print(eXtime);
        Serial.println(" after armed 2 if xtime val"); 
       if (armed==1)
         {
           clr_scr();
           minut=minut + eXtime;
           Serial.print(eXtime);
           Serial.println(" xtime val");
           Serial.print(minut);
           Serial.println(" minut val");
           itoa(minut,minu,10);
           LCD_Message(minu,3,1);
           itoa(second,sec,10);
           LCD_Message(sec,3,1);

           while (go_boom==0)
             {
              countdown();
              if (minut == 0)
                {
                 if (second == 0)
                   {
                    go_boom = 1;
                    clr_scr();
                    LCD_Message(boom,16,1);
                    delay(2000); 
                    big_boom = 1;
                   }     
                 }     
               }   
         }  
     }
 }

// LCD functions
// All tested and working as expected

 void backlight_on()
{
  err_c = I2c.write(DLCD,0);  // set the register pointer 
  if (err_c != 0)
    {
     Serial.print(err_c);
     Serial.println("  Error setting pointer");
    }  

  err_c = I2c.write(DLCD,0,19);
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error setting backlight on");
    }  
} 

void backlight_off()
{
   err_c = I2c.write(DLCD,0);  // set the register pointer 
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error setting pointer");
    } 
 err_c = I2c.write(DLCD,0,20);
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error setting backlight off");
    }  
  
}  

void LCD_Message(char mess[],int C_len, int M_line)
{
  if (M_line == 2)
   {
    Line_2();
   }
  err_c = I2c.write(DLCD,0);  // set the register pointer 
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error setting pointer");
    } 
for (i=0;i<C_len;i++)
 {
 err_c = I2c.write(DLCD,0,mess[i]);
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error writing message");
    }
 } 
}
  
void Line_2()
{
  err_c = I2c.write(DLCD,0);  // set the register pointer 
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error setting pointer");
    } 

  err_c = I2c.write(DLCD,0,13);
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error writing message 2");
    }
}

void clr_scr()
{
   err_c = I2c.write(DLCD,0);  // set the register pointer 
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error setting pointer");
    } 
  err_c = I2c.write(DLCD,0,12);
  if (err_c != 0)
    {
      Serial.print(err_c);
      Serial.println("  Error clearing screen");
    }     
}

void check_arm ()
{
  int arm_good = 0;
  for(i=0;i<4;i++)
   {
    if (Arm_card[i+1] == Test_val[i])
      {
       arm_good = arm_good + 1;          
      }
   }
   if (arm_good == 4)
    {
     armed = 1;
    }  
   else
    {
     armed = 2; 
    }  
}  

// RFID read section note for new cards

void Get_card ()
{
  int val;
  int got_data = 0;
  while (got_data == 0)
  {
    mySerial.write("!RW");
    mySerial.write(byte(RFID_READ));
    mySerial.write(byte(32));
    mySerial.available();
 
    if(mySerial.available() > 0)
    {      
      val = mySerial.read();                        //The mySerial.read() procedure is called, but the result is not printed because I don't want the "error message: 1" cluttering up the serial monitor
      if (val != 1)                                   //If the error code is anything other than 1, then the RFID tag was not read correctly and any data collected is meaningless. In this case since we don't care about the resultant values they can be suppressed
       {suppressAll();}                              
   }      
 
   if(mySerial.available() > 0) 
   {      
    clr_scr();
    LCD_Message(message3,15,1);
    delay(2000); // more waiting :)
    val = mySerial.read();
    itoa(val,Set1,10);
    LCD_Message(Set1,4,2);
    delay(2000);
    Arm_card[1] = val;
    Serial.print("1st:");
    Serial.println(val);
    }

   if(mySerial.available() > 0) {        
    val = mySerial.read();
    itoa(val,Set2,10);
    LCD_Message(Set2,4,1);
    delay(2000);
    Arm_card[2] = val;
    Serial.print("2nd:");
    Serial.println(val);
    }

   if(mySerial.available() > 0) {      
    val = mySerial.read();
    itoa(val,Set3,10);
    LCD_Message(Set3,4,1);
    delay(2000);
    Arm_card[3] = val;    
    Serial.print("3rd:");
    Serial.println(val);
    }

   if(mySerial.available() > 0) {          
    val = mySerial.read();
    itoa(val,Set4,10);
    LCD_Message(Set4,4,1);
    delay(2000);
    Arm_card[4] = val;
    Serial.print("4th:");
    Serial.println(val);
    Serial.println("-----------------");
    got_data = 1;
   }  
   delay(750);
  }
}

void suppressAll()                                //suppresses the "null result" from being printed if no RFID tag is present
{
    if(mySerial.available() > 0)
    { mySerial.read();
      suppressAll();
    }
}


/***********************************************************
* Main countdown timer                                     *
*                 countdown()                              *
************************************************************/
void countdown()
{

  static unsigned long lastTick = 0; // set up a local variable to hold the last time we decremented one second
// (static variables are initialized once and keep their values between function calls)
 
// decrement one second every 1000 milliseconds
  if (second > 0) {
      if (millis() - lastTick >= 1000) {
          lastTick = millis();
          second--;
          clr_scr();
          itoa(minut,minu,10);
          LCD_Message(minu,3,1);
          itoa(second,sec,10);
          if (second < 10)
           {
           LCD_Message(zer,1,1);
           }  
          LCD_Message(sec,3,1);

      }
  }
 
 // decrement one minute every 60 seconds
  if (minut > 0) {
      if (second <= 0) {
          minut--;
          second = 60; // reset seconds to 60
      }
  }
 
// decrement one hour every 60 minutes
  if (hour > 0) {
      if (minut <= 0) {
          hour--;
          minut = 60; // reset minutes to 60
      }//closes if
  }//closes if
 
}

3-28-2013 2-25-36 PM.png