12f508. Yardım

Başlatan zeus48, 29 Kasım 2017, 20:59:02

zeus48

@ DEVICE pic12F508 ;
@ DEVICE pic12F508 , MCLR_OFF
@ DEVICE pic12F508 , PROTECT_ON
@ DEVICE pic12F508 , XT_OSC
@ DEVICE pic12F508 , INTRC_OSC ;Dahili osilatör kullanılacak
@ DEVICE pic12F508 , WDT_OFF


DEFINE OSC 4
TRISIO=%000000
GPIO=0
OPTION_REG.5=0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SYMBOL AK =GPIO.0
SYMBOL SAG =GPIO.1
SYMBOL TMM =GPIO.2
PAUSE 1000 ;AÇILIŞTA MUTLAKA KOY
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BASLA:

AK=1:PAUSE 500:AK=0:PAUSE 14000
SAG=1:PAUSE 500:SAG=0:PAUSE 700:SAG=1:PAUSE 500:SAG=0:PAUSE 500
TMM=1:PAUSE 500:TMM=0:PAUSE 700:TMM=1:PAUSE 500:TMM=0:PAUSE 700
SAG=1:PAUSE 500:SAG=0:PAUSE 500
TMM=1:PAUSE 500:TMM=0
END



Arkadaşlar mrb ilk defa 12f508   kullanıyorum  kodlar yukarıda.  Fakat GPIO.2  çıkış
olarak çalıştıramadım. Data açılımını baktım  birşey anlamadım.  Bilen arkadaşların yardımını bekliyorum. 32 bit  xp kullanıyorum 

Hattuşa

http://www.wvshare.com/img/pinout/PIC12F508_l.jpg


12f508 in gpo.2 pini t0cki dolayısıyla bu pin sadece çıkış olarak kullanılır ve pullup direnci ister. şimdi o çıkışa  4k7-10k arası bir direnci +5v ile pulluplamalısınız

zeus48

Pro_tr. Üstad yaptım ama sonuç yok. Gpıo.1 ve o çıkış alıyorum fakat gpıo.2  den çıkış yok

ete

Bir düzeltme yaparak başlayayım. GPIO.2 yalnızca input çalışmaz. Bu özellik GPIO.3 yani MCLR pini için geçerlidir.
GPIO.2 hem input hem output çalışabilir.
Bu işlemcide GPIO.2 pini OPTION register tarafından bir şekilde kontrol edilir. OPTION_REG.5 biti TMR0 sayacının giriş seçim bitidir. Şayet bir şey belirtmezseniz bu pin TMR0 sayacı için harici giriş pini olarak seçilmiş olur. Bu nedenle programınbaşına OPTION_REG.5=0 komutunu eklemeniz gerekir. Böylece o pin normal output işlemini yapacak hale gelir.

BASLA satırından hemen sonra koymuş olduğun PAUSE 10000 hem çok büyük bir değer (10 sn) hemde şayet açılış gecikmesi ise bunu BASLA satırından evvel yerleştirmen gerekir. Kısaca programa başlamadan evvel registerler yerine otursun diye 200-1000 ms arasında bir gecikme koymak mutlaka gereklidir. Bu işlem bütün programlar için geçerlidir.

Dikkat ettim de programda çok büyük gecikmeler kullanılmış. Belki zorunluluktur ama dikkatini çekmek istedim.
Gerekli değil ise uzun gecikmelerden sakının.Programı denerken bile insanı sıkar. SOnuç göremezsiniz.
Her neyse son olarak şunu ekleyeyim, mesajlarda kod verirken KOD TAG  (Yukarıda üzerinde # işareti olan buton) kullanın lütfen.
Programı olması gereken şekilde düzelttim dene bakalım.
Ete

zeus48

Ete hocam eline sağlık. Çalıştı

Powered by EzPortal