pic basic pro yazılımsal reset nasıl atılır


Çalıştığım projelerde pic18f serisi veya yukarısı kullandığımda yazılımsal reset ihtiyacı olduğunda, aşağıdaki komut ile yazılımsal olarak mcu ya reset atmak çok kolay. Reset  istendiğinde bu etikete gitmek işlemi tamamlıyor. Asm komutu kullanarak sorunu çözebiliyoruz. WDT kapalı olsa da çalışır.

reset_etiketi:
asm
@reset
endasm
goto reset_etiketi

Ancak 16f serisi bir pic mcu kullanıyorsanız bu kadar kolay değil. Bu çalışan kod parçasını bulmak 3 saatimi aldı :) Çalışması için WDT açık olmalı.

reset_etiketi:  
asm
@clear
@clrf PCLATH
@goto 0
endasm
goto reset_etiketi

Görüldüğü gibi kod parçacığı yazılımı ilk adres satırına ulaştırmakta. 10f 12f ve 16f serisi piclerde bu kodu kullanabilirsiniz. Bu asm kodlarını diğer derleyici ve dillerde de kullanabilirsiniz. İstediğiniz zaman pic mcu yu baştan başlatmanızı sağlayacaktır.

Kodun çalışabilmesi için watch dog timer açık olmalıdır. Tabi watch dog timer a güvenemiyorsanız bu komutu kodların arasına serpiştirmenizde fayda var:

clearwdt

Reset işlemi yaptığınız alt program dışında her alt programa bu satırı ekleyebilirsiniz. Eğer programınızda wdt yi devreye sokacak uzun süreli pause gibi bug lar varsa onları da elden geçirmeniz gerekir.

Proton basic 18f serisi için yazılımsal reset örneği de şu şekildedir:

etiket:
ASM
reset
ENDASM

End


Yorumlar

Popüler Yayınlar:

grup priz ara kablo yapımı

elektrikli fırın devre bağlantı şeması

gsm sinyal seviyesi asu dbm nedir

dc motor yönü değiştirme devresi

chrome ile programsız video nasıl indirilir

fan aspiratör motoru dönüş yönü değiştirme