watch dog timer ayarlanması

Başlatan bulut_01, 09 Mayıs 2015, 08:41:45

bulut_01

İyi günler pic proje ailesi 16F serisinin watch dog timer zamanlamasını ayarlayamadım setup_wdt(WDT_2304MS) yapıyorum 2.3 sn watch dog devreye girmesi lazımken kafasına göre 20 ms civarında giriyor bunu 2.3 sn girmesi için hangi setup komutu yazmam lazım 2304 ms devreye girsin restart_wdt() ile silebiliyorum bunda sorun yok ama 2304 mS ayarlayamıyorum yardımlarınız için simdiden tsk ederim.
YENİLMEZ..

RaMu

Kod var mı, nerede deniyorsun, simulasyon dosyan var mı?
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

bulut_01

Şuanda dışardayım tel. Giriyorum bana wdt 2304 ms nsl ayarlanır komutu lazım ccs kullanıyorum.

mesaj birleştirme:: 09 Mayıs 2015, 13:33:49

Proteus deniyorum
YENİLMEZ..

RaMu

Yani kodları simulasyonu paylaş kontrol edelim demek istedim.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

bulut_01

Register wdt aktif etmek için
#byte wdte=0x11 yapıyorum aktif olmuyor
#byte wdtcon=0b0001100. Denedim gine olmadı ccs bu wdt register bitleri nasıl kullanılıyor yardımcı olurmusunuz.
YENİLMEZ..

RaMu

#byte wdte=0x11 //yapıyorum aktif olmuyor
#byte wdtcon=0b0001100.


Hocam bunlar preprocessor-önişlemci komutları
(ismini yanlış hatırlıyor olabilirim bilen düzeltisin lütfen ama işlevi anlattığım gibi)
yani sadece derleyiciye şu şöyle olsun, şu şudur gibi şeyler söyler,
picin içindeki registerlara değer atamaz.

wdt özelliklerini ccsc de nasıl kullanacağım
bunun en kapsamlı kolay cevabı
ccsc nin help kısmına wdt yazmak aslında,
yani ben öyle yapıyorum.

Belli başlı birkaç şey var zaten,
#byte vs. ile ccsc de uğraşmak zorunda kalmıyorsunuz.

Önce configurayonda wdt aktif ediliyor,
yani #FUSES satırında WDT bulunacak
(kullanmadığımızda NOWDT yazıyoruz).
Birde wdt nin katsayısı verilebiliyor,
kullanılacak mcu ya göre değişir;
buda yine fuses kısmında bununla ilgili birşey vardı herhalde tekrar bakar yazarım.

Daha sonra kodun main kısmında bir defaya mahsus olabilir,
değişecekse program içindede kullanılabilir bazı fonksiyonlar var:
setup_wdt(WDT_ON);
	setup_wdt(WDT_18MS|WDT_DIV_16);		//~18,0 ms reset

gibi fonksiyonlar bunlar.

Birde bunları zaten ccsc de project wizard ile proje oluştururken
ilgili menülerden seçmek yeterli.
Bu menülerden ilki Device
diğeri fuses menüsü.

Bunları zaten bulmuşsunuzdur.
Dediğim gibi kod ve simulasyon dosyalarını paylaşın daha kolay çözülür.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

bulut_01

Setup_wdt() komutlarını biliyorum öyle çalıştırıyorum div_16 komutu burda 18 ms. Reset atıyor onu div_16 mesela 16 mı bölüyor ccs register seviyesinde wdt nasıl kurardım onu ögrenmeye çalışıyorum yoksa ccs hazır fonksiyonları var biliyorum register seviyesinde nasıl yazılır pic katalog registerları kullanarak ccs de wdt kurmak istemiştim aslında.
YENİLMEZ..

RaMu

CcsC de kullanabildiysen,
CcsCde  c asm list kısmını aç,
wdt ile ilgili komutların olduğu yerdeki karşılıklara gel,
sonra bu asm ayarları datasheet ten hangi registerları ne yapıyor diye takip et.

Yine ccsc de kullandığınpic.h dosyasında wdt ile ilgili açıklamalar var.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html