16F1827 PORTB.1 PULL UP BOZULMASI ???

Başlatan F®T, 22 Mayıs 2016, 22:55:21

ete

#15
Denemeyi yaptım. Benim denemem PORTB.1 pininde Pullup durumunu görebilmek amacını taşıyor idi.
Ancak Mehmetin verdiği açıklama işe yaramıyor.  İlişikteki program parçasında bunu gözlemleyebiliyoruz.
Bu yalnızca bir programın açılış kısmını ihtiva ediyor. Bu hali ile açıp isis de bakarsanız PORTB.1 pininde pullup görebiliyorsunuz.
Alt kısımda yer alan,
  RCSTA=0
  TXSTA=0
komutları aktif durumda iken PORTB.1 pininde pullup görmek neredeyse imkansız.
Ama bu iki satırı ,
;  RCSTA=0
;  TXSTA=0
şeklinde kapatıp yeniden derlerseniz Pullup çalışmaktadır. (rar dosyasında yer alan programda kapatılmış durumdalar)
Bu durumda söz konusu USART registerleri bu pindeki pullup özelliğine etki etmektedir.

Ancak Mehmetin keşfi yine işe yarıyor ve bu iki satırı alıp en başa Define OSC 4 satırının altına yazarsanız ve satırları aktif hale getirsenizde sistem sorunsuz çalışmaktadır.
Buda şunu gösteriyor. Bunlar sistem komutları ve port ayarlarından önce programa yerleştirilmeleri gerekiyor anlaşılan.
Sebebini bende anlayamadım.
Bu sistemi gözlemlemek için sigorta satırlarınıda kapatmak gerekiyor. Sigorta satırını açarsam sistem yine çalışmıyor. Kim etkiliyor diye bakınca WDT den etkilendiğini görebiliyorum. WDT_ON yaparsam sistem bozuluyor. WDT_OFF yaparsam pic sürekli reset atıyor. Garip bir durum.

Ete

F®T

Hocam daha öncede bir kaç adet 16f1827 pic te bu sorunu yaşadım ve orjinal piclerde aynı programla sorun bitmişti.Bu işlemcileri anlamak baya zor olacak heralde.Configrasyonu hangi sıralamaya göre yapacağımızı bilmemiz şart gibi bir durum söz konusu oluyor.Eski nesillerde pek buna dikkat etmiyorduk bu tip sorunlarda ben şahsen yaşamadım.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Hattuşa

benimde nacizane tecrübelerim şöyle;
aynı maksatla yazılmış 2-3 versiyon hexlerinin bazılarında pulluplar sıkıntı yaratmazken bazılarında yaratıyor, söylediklerinizi bir kontrol edeceğim, yalnız neden bu kadar kritik olabilir ki, sonuçta başta yazdıklarımız işlemcinin configüre işlemleri değilmi? benim aklıma gelen ise malum ister basicte ister C dilinde yazılan bütün kodlar asm ye çevriliyor ya acaba asm ye çevrim sırasında mı hataya düşüyor? malum birkaç kod yazımında bu tip hatalarla geçmişte karşılaştık

mehmet

Alttaki şekilde tanımlama yapmışlar...

PIC16F722, DS40001341F-page 59
EXAMPLE 6-2: INITIALIZING PORTB

BANKSEL PORTB
CLRF PORTB
BANKSEL ANSELB
CLRF ANSELB
BANKSEL TRISB
MOVLW B'11110000'
MOVWF TRISB
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

F®T

Ben şahsen bu sıralamaya şimdiye kadar bu şekilde önem vermemiştim.Bu yeni nesillere has bir konumu?
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

mehmet

PIC16F18877 de de aynı sıralama.
Dijital giriş (ANSELx) ayarlama, port
giriş(TRISx) işleminden önce yapılıyor...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

ete

Temel mantık şöyle olmalı herhalde. Default olarak bütün pinler output açılıyor. Ansel komutunu önceden ayarlayıp kim analog olacak önceden belirliyorsun. Sonra tris registerini ayarlayarak pinlerin analog özelliğini tam olarak ayarlamış oluyorsun.
Ete

Powered by EzPortal