wdt kullanımı

Başlatan krian, 05 Kasım 2008, 21:20:35

krian

sürekli çalışacak bir devrede pic in kilitlenme ihtimalini ortadan kaldırmak için wdt kullanmak istiyorum.formda bu konu ile ilgili bilgileri araştırdım.
wdt genel olarak korkulan bir sigorta ayarı olarak görülüyor.hatta reset atma olayı duyuldugunda ilk söylenen şey nowdt .

setup_wdt(WDT_2304MS);

restart_wdt();

Benim anladıgım kadarıyla her 2304ms de bir pic kendini reset atıyor.Burada amaç wdt 2304 ms ye ulaşmadan  restart_wdt(); komudunu kullanarak wdt yi sıfırlamak.taki program kilitlenip restart_wdt() ye 2304ms de ulaşamayıncaya kadar.bu durumda pic in kilitlenmiş oldugu anlasılıyor ve sistem bastan tekrar calısmaya baslıyor.

bu konuda tecrübesi olan arkadaslardan yorumlarını bekliyorum.Bu arada wdt reset attıgında power reset gibi mi davranıyor yoksa sadece  program counter basa mı dönüyor?

Tagli

Bildiğim kadarıyla komple reset oluyor. Zaten bu şekilde olması mantıklı. Çünkü register'ların içinde kayıtlı eski (ve muhtemelen hatalı) veriler programı işlemez hale getirebilir. O yüzden herşeye sıfırdan başlar.

WDT'nin taşma süresi sabit değil. OPTION_REG'den prescaler ayarını değiştirerek bu süreyi değiştirebilirsin. Ayrıca artımlar cycle'ı temel alır. Yani süre kullandığın kristal ile doğrudan ilgili.

Düzeltme: Yanlış biliyormuşum. WDT kristalden bağımsızmış. PIC içindeki RC devresini kullanarak çalışıyormuş ve herhangi bir ayar yapılmazsa ve normal sıcaklıklarda 18 ms'de bir sıfırlanıyormuş.
Gökçe Tağlıoğlu

mucit07

kullandığın pic data shett bak cünkü her pic in farklı wdt var

tampinar

kesinlikle WDT pice komple reset atar ve program baştan tekrar çalışır.bizde bu konuda sorun yaşayıp araştırmıştık.