Haberler:

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

Ana Menü

IAR ARM7

Başlatan burak_82, 04 Kasım 2007, 13:09:16

Cetinal

@picusta evet hocam olur

mesela ben bu örnek verilen gecikme alt programını 8051 e uyguladım ve çalışıor arm de çalışır hatta bu ccs de mikroC picc de bile çalışır ;)
#include <at89x51.h>
void delay_ms(long k) 
{ 
long p,q; 

for(p=0;p<k;p++) 
for(q=0;q<7500;q++); 
}
void main (void)
{
P1_0=0;
delay_ms(10);
P1_0=1;
}

picusta

Bir de derleyicinin optimizasyon ayarlari ile oynayin, bakin o zaman neler oluyor.
Benim anlatmak istedigim derleyici bu fonksyonu tümden yok sayabilir.

burak_82

Düzeltme:

Optimizsayon ile ilgili sıkını yaşayan arkadaşlar


void delay_ms(long k)
{
   long p,q,r;

   for(p=0;p<k;p++)
      for(q=0;q<7500;q++)
                                  r++;

}


Şeklinde kullanabilir.

parda

Döngüler ile gecikme yapmak yapmak yerine bunuda deneyebilirsiniz. Optimizsayon sorun olmaz. yapmanız gereken tek şey kristal ve PLL ayarlarınıza göre 18500 değerini 1 ms ayarlamak

Kod LPC2100 serisi ve IAR derleyicisi içindir.

void DelayMs(int msec)
{ 
 DelayMs_Enter;
 while(msec--){
  delay_1ms();
 }
 DelayMs_Exit;
} 
/******************************************************************************/
void delay_1ms(void)
{
 delay_1ms_Enter; 
 T1MCR = 0x07;
 T1TC = 0x00;
 T1MR0 = 18500;
 T1TCR = 0x01;
 while(!(T1IR & 1));
 T1IR = 0x01; 
 delay_1ms_Exit;
}
Bildiğim tek şey, hiç bir şey bilmediğimdir.