Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

IAR da gecikme?

Başlatan neotr, 10 Ekim 2008, 16:59:16

neotr

merhaba arkadaşlar IAR da gecıkme yapmaya calısıyorum fakat yapamıyorum...
void main()
{         int i,j;
  
            mcu_initial();
            pd2=0xFF;
          prc2=1; 
            pd9=0xFF;
          prc2=0;
  
   p2=0x00;
 do{
    p2=0x01;
    delay_us();
    p2=0x02;
    delay_us();
   }while(1);
}

void delay_us()
{
 
  int i, j;
  for(j=0;j<10000;j++)
  {
    for(i = 0; i < 10000; i++);
  }
}


burdakı program 1. ledi yakıyor fakat 2.sine gecmıyor gecıkme aralıgı cok kısa olsa farkedememem gerek 2 sı de yanar cokta uzun degıl cok dusuk degerlerde atasam dongu degıskernlerıne bırsey degısmıyor..
elımınde 1sn gıbı stadart fonkıyonu olan varmı arkadaşlar paylaşabılırmı?

Klein

void delay_us(void) şeklinde bir dene.
ayrıca for(i=0;i<10000;i++); yerine
for(i=0;i<10000;i++) asm("nop") şeklinde yaz. iar ile çok çalışmadım ama for döngüsü içerisinde bir işlem yapmazsan döngüyü hemen bitiriyordu. Daha önceki çalışmalarımda öyle birşey olmuştu. Ayrıca 1sn  için 10000 delay çok az. long int kullanıp 100000 civarlarında saydır.

neotr

evet klein teşekkürler dediklerini dikkate aldım ve şimdi gecikme sorunsuz çalışıyor..

neotr

klein senın dedıgın gıbıde yaptım