CCS de kod for(;;) içinden nasıl çıkar anlayamadım?...

Başlatan remzi, 01 Ekim 2007, 12:30:01

remzi

[/code] void main()
{
  setup_timer_2(T2_DIV_BY_16,255,16);
  setup_oscillator( OSC_4MHZ );
  enable_interrupts(INT_TIMER2);
  enable_interrupts(INT_RB);          //RB4-RB7 değişim kesmesi
  enable_interrupts(GLOBAL);
 
  set_tris_a(0x70);
  set_tris_b(0xF0);
 
  PORTA=0x00;
 
  PORTB_1=1;              // default olarak ayarladım. biri mutlaka 1 olmalı
  PORTB_2=0;
  PORTB_3=0;
 
  biple();
  delay_ms(50);
  biple();
 

  for(;;)
  {  
     if(tus==1)
       kilit_kapat=1;
     if(tus==2)
       kilit_ac=1;
     if(tus==3)
     {
     kilit_ac=1;
     kilit_kapat=1;
     }
     if(tus==4)
        uyari_ledi=1;
     
     if(tus==5)
     {
     uyari_ledi=0;
     kilit_ac=0;
     kilit_kapat=0;
     }
  }
}

Arkadaşlar bu programda program for döngüsünün dışına çıkıyor. Sebebi nedir ve çıkmaması için ne yapabiliriz?

teşekkürler...

kurumahmut

void main()
{
   setup_timer_2(T2_DIV_BY_16,255,16);
   setup_oscillator( OSC_4MHZ );
   enable_interrupts(INT_TIMER2);
   enable_interrupts(INT_RB);          //RB4-RB7 değişim kesmesi 
   enable_interrupts(GLOBAL);
   
   set_tris_a(0x70);
   set_tris_b(0xF0);
   
   PORTA=0x00;
   
   PORTB_1=1;              // default olarak ayarladım. biri mutlaka 1 olmalı
   PORTB_2=0;
   PORTB_3=0;
   
   biple();
   delay_ms(50);
   biple();
   
 
   for(;;)
   {  
      if(tus==1)
        kilit_kapat=1;
      if(tus==2)
        kilit_ac=1;
      if(tus==3)
      {
      kilit_ac=1;
      kilit_kapat=1;
      }
      if(tus==4)
         uyari_ledi=1;
      
      if(tus==5)
      {
      uyari_ledi=0;
      kilit_ac=0;
      kilit_kapat=0;
      }
   }
}

Arkadaşlar bu programda program for döngüsünün dışına çıkıyor. Sebebi nedir ve çıkmaması için ne yapabiliriz?

teşekkürler.


Problem koddan kaynaklı değil. Belki WDT açıktır. Birde çıktığını düşündürten şey ne? nerde denedin?

remzi

Doğru diyorsun WDT açıkmış ve sıfırlamamamışım...

Devre sürekli resetlenip başa dönüyormuş.
Çıktığını buzer la denedim.  biple(); fonksiyonunun içinde buzer çalıştırdım.

Teşekkür ederim...

iyi çalışmalar.