döngü sorunu

Başlatan zaferortatepe, 16 Ocak 2010, 02:25:43

zaferortatepe

#include <16F84.h>
#fuses XT,NOWDT,NOPROTECT,NOPUT
#use delay(clock=4Mhz)

int i=0;

void main (){     
   output_low(pin_b1);
   output_high(pin_b0);
   delay_ms(1000);
   output_low(pin_b0);
   while(1)
   {
   basla:
   if(input(pin_a0))
   {
   for(i=0;i<5;i++)
   {
   output_high(pin_b0);
   delay_ms(6000);
   }
   i=0;
   output_low(pin_b0);
   output_high(pin_b1);
   goto basla;
   }
   if(input(pin_a1))
   {
   for(i=0;i<5;i++)
   {
   output_high(pin_b0);
   delay_ms(6000);
   }
   i=0;
   output_low(pin_b0);
   output_high(pin_b1);
   goto basla;
   }
   if(input(pin_a2))
   {
   for(i=0;i<5;i++)
   {
   output_high(pin_b0);
   delay_ms(6000);
   }
   i=0;
   output_low(pin_b0);
   output_high(pin_b1);
   goto basla;
   }
   if(input(pin_a3))
   {
   for(i=0;i<5;i++)
   {
   output_high(pin_b0);
   delay_ms(6000);
   }
   i=0;
   output_low(pin_b0);
   output_high(pin_b1);
   goto basla;
   }
   }
}


arkadaşlar ccs c de yeniyim o yüzden basit bir devre kurmak istedim.devrede 4 buton var ve bu butonlardan birine bastığımızda pin_b0 çıkışındaki buzzer 30 sn ötüyor.ben birde buzzer ötmeden pin_b1 deki ledi yakayım ve sürekli yanık kalsın dedim fakat yanmadan for döngüsüne girdi.output_high(pin_b1) komutu ile for döngüsü arasına 500msn gecikme verincede 500msn yandı sonrada söndü.neden olduğunu anlayamadım.aynı output_high(pin_b1) komutunu for döngüsünden sonra koydum ve led sürekli yanık kaldı.neden oldugunu bilen arkadaşlar yardımcı olurlarsa sevinirim

Salih

Giriş uçları pull-up'mı veya pull-down'mı ?
Yeni başladığınız için bir tavsiyede bulunayım. Yazacağınız programda birden fazla görev varsa; öncelikle bir tanesini hedefleyerek başlayın. Bir görev başarılı olarak tamamlandıkdan sonra diğer görevlere başlayın. Sizin örneğinizde önce A0 girişindeki işlemi tamamlayın sonra diğerlerini yazmaya başlayın. Hata ayıklarken daha kolay olur.