Haberler:

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

Ana Menü

bekleme sorunu

Başlatan freewalks, 23 Ağustos 2006, 15:47:21

freewalks

arkadaslar belki çok basit bir soru ama

acayip....

delay_ms(200);

mesela on kez donguye soktumm..

niye 2 sn  bekleme elde edemiyorum..

çok acayippp olabilir simdiden özür.

Erkan Gench

Bukadarcık bilgi vererek sorunuza gerçekten cevap almayı nasıl umuyorsunuz hayret ediyorum. Buraya cevap verecekler tahminler yapıp durmak zorunda kalacaklar. Yanlış anlamayın ama haksızsam söyleyin.

2 sn olmuyorda ne kadar oluyor. 2.1sn mi? yoksa 1 saniyemi? küçük farklar olur çünkü delay 200ms bekler ama bir sonraki delay'e başlayana kadar başka işlemler yapılır. yada interruptlar gelir delay'i uzatır.

çok fark oluyorsa kristal frekansını yanlış tanımlamışsınızdır. pek çok şey olabilir.
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

freewalks

cevabınız için tesekkürler
ama acayip olduğunu belirtmiştim...


aksine 2 saniyelik sürenin uzaması yerine 1 saniye bile sürmemesinden kaynaklanıyor sorun..

Ziya

bağladığınız kristalin frekansı nedir?

Yazdığınız programı gönderin oradan bakalım.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

freewalks

cok basit bir sekilde deneme maksatında su programı yazdım
hemen bi deneyim yoksa programım mı hatalı diye
ama asağıdaki program cevap olarak lcd de, ilk yazı 2 saniye kaldı yaklasık ama diğeri kalmadı hemen diğeri geldi, bunun problemi ne olabilir
sizce?

#include <16F876A.h>
#use delay(clock=4000000)
#fuses XT

#include <lcd.c>

void main()
{

   lcd_init();

   for(;;)
   {
      lcd_putc("freewalks");
      delay_ms(2000);
      lcd_gotoxy(1,1);
      lcd_putc("   GYTE    ");
      delay_ms(2000);
      lcd_gotoxy(1,1);

   }
}

Erkan Gench

wdt açık sanırımı #fuses kısmına NOWDT yazıp bide öyle deneyin. Olmazsa taktığınız kristalin gerçekten 4MHZ olduğundan emin olun.

Kolay gelsin.
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

HEXF2

Dostum for döngün içine Restart_Wdt() komutu koy sorunun hallolduğunu göreceksin.Sen Proteusta mı simüle ediyorsun??? Bu olayı Proteusta bende aşamadım uzun bir kod yazıyorum.NOWDT ile Wdt'yi kapatıyorum.Misal seri porta "Merhaba" gönderiyorum.Virtual terminalde bakıyorum paso "Merhaba" gönderiyor.Ama döngü içine Restart_Wdt() yazınca sadece birkez gönderiyor seninde problemin bunun gibi olabilir.Yani sein döngün doru düzgün çalışmadan reset yiyiyor PIC.İnşallah buluruz bir çözüm...

freewalks

Arkadaslar tavsiyelerinizi denedim ve sonuç olarak problemim çözüldü..
Tesekkürler...


1 - #fuses NOWDT denedim ilk olarak, bu arada LCD kullanımı gerçek ortam proteusda değil, lcd de yazılar çıkmadı...

2 - restart_wdt(); komutunu kullandım ve problemim çözümlendi, istediğim zaman aralıklarında bekleme olabiliyor..

Erkan Gench

Merhaba.

Aslında sorun WDT ise NOWDT deyince sorunun çözülmesi gerekirdi. Bence yeni proje yaparken CCS'den new project wizardı kullanın çünkü sizin için pek çok ayarı otomatik yapıyor. Bu şekilde ileride başka sorunlarla karşılaşabilirsiniz.

Kolay gelsin.
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.