Hi-Tech picc Delay fonksiyonu 20Mhz de çalıştırmak.

Başlatan igolcubasi, 06 Mayıs 2009, 09:15:27

Erol YILMAZ

Aykut Ulusan'ın PIC24 için yaptığı kodlardan DELAY için bir örnek :

// X*10US  
void 
DLY_10US(unsigned int us){  
   while(us--) {  
      __asm__ volatile ("repeat #33");  
      __asm__ volatile ("nop");  
   }  
}  

// 65536ms'ye kadar  
void 
DLY_MS(unsigned int ms){  
   while(ms--){  
      DLY_10US(100);  
   }  
}

picmanya

verilen delay gecikmelerinde işlemcinin iç bağımsız timerleri kullanılmamış işlemci bu gecikme komutlarına geldiğinde bu gecikme komutlarını işlerken oluşabilecek bir interrupt haricinde komut işletmez taki normal delay komutları bitene kadar hatta arada oluşan interruptların içindeki komutlar yürütülürken geçen zaman bu delay fonksiyonlarına ilave edilir çünkü interrupt içerisindeki kodlar işlendikten sonra program interrupttan önceki yerine geri döner ve kaldığı yerden delayı işletir
tabiki programı yazanın işini bu tür bir komut kümesi görüyorsa yinede yazılabilir hatta C compilerlerde direkt işlemci saat kıristali üzerinden zaman işletmekde mümkün oluyor kıristalin değeri bilindiğine göre iş daha pratik ve kısa oluyor C compiler kütüphanesinde bu tarz komut ve fonksiyonlara rastlıyorum
profesyoneller işi genelde böyle yürütmüyorlar
sırf bu aşırı delay tarzı komut-kod gereksinimlerinden dolayı işlemci bağımsız iç timer larını istediğimiz gibi konfigüre edemediğimizden yani işin içinden çıkamadığımızdan dolayı sırf glcd kullanımı için ikinci bir pic'i devremize eklemek zorunda kaldık hala tek pic'le 256X128 glcd yi delay(xx); tarzı kod yazmadan kullanabilme üzerine kafa patlatıyoruz.