Hergün aynı saatte çalışan programın başlangıç sorunu

Başlatan mechanicalengine, 01 Mayıs 2014, 15:35:09

mechanicalengine

Arkadaşlar;

Aşağıdaki komutla hergün saat 8'de yanan led'in çalışmasında sorun yok. Sorun saati ertesi gün saati 8'e tekrar ayarladığımda program b2 led'ini yakarak başlamak yerine b1 led'ini 1 saniye yakıp daha sonra b2 led'ini olması gerektiği gibi yakarak devam ediyor. Sizce sorun ne olabilir? Program b2 lediyle değil de b1 ledini yakarak başlıyor daha sonra b1 led'ini yakıyor.

void main()
{  
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   lcd_init();       //lcd yi hazırla
   rtc_init();       //saat entegresini hazırla
   rtc_set_datetime(24,04,14,4,8,00,); // Tarih ve Saat ayarları yapılıyor
   delay_ms(5);
   printf(lcd_putc,"\f DENEME \n DENEME");
   delay_ms(200);
   printf(lcd_putc,"\f");
   delay_ms(5);    
   
while(1)
{
      if(ayar==0){rtc_get_time(saat,dakika,saniye);rtc_get_date(gun,ay,yil,hafta);}
      lcd();
      ayaryap();

if(saat==8&&dakika==00&&saniye==00)
               {
               set_tris_b(0b00010001);
               output_b(0x00);
               //output_low(pin_b1);
               output_high(pin_b2);
               ext_int_edge(H_TO_L);
               enable_interrupts(INT_EXT);
               enable_interrupts(INT_RB);
               enable_interrupts(GLOBAL);
               }

if (bekle==true)
    {
     output_low(pin_b2);
     output_high(pin_b1);
     delay_ms(1000);
     output_low(pin_b1);
     output_high(pin_b2);
     bekle=false;
    }
    }
}

kesme komutları da aşağıdaki gibidir.
int1 bekle=false;
int i=1;
#int_ext
void kesme(void)
   {
   if ((i==4))
         {
         disable_interrupts(INT_EXT);
         disable_interrupts(GLOBAL);
         output_low(pin_b1);
         output_low(pin_b2);
         output_high(pin_b3);
         }
   else  { 
         bekle=true;
         }
         i++;
   }

#int_RB
void B_degisiklik()
         {
         if(input(pin_b4))
         {
         output_low(pin_b1);
         output_low(pin_b2);
         output_low(pin_b3);
         i=0;}
         }


Tavsiyeleriniz için şimdiden teşekkürler.