devreye besleme baglarken rolenin cekmesi

Başlatan selvi, 27 Temmuz 2009, 15:18:53

selvi

16f84 de programda configleri kabul etmiyor.yani 84 de configleri yazmaya gerek yok.16f84 .inc dosyasindaki config ayarlari var .birde protonla program yazmanin avantajlari var.fakat benim bahsettigim sorun bundan kaynakli olduguna fazla ihtimal veremiyorum.bir ara protana basladim.kismi calistim.sonra tekrara pbp e gectim.zaten bu programlar eski programlarim.heside pbp ile yazildi.karsilastigim sorunlar bunlar.
Yaşam anlamlandırıldıkça kutsaldır....

mustafa_cmbz

hocam bu bahsettiğiniz sorun çok cins bişey benim başıma hiç böyle birşey gelmedi...aslında ilk önce işin inceliklerini kavramanız gerek ozaman en ufak bir ayrıntıyı dahi atlamadan sorunun nereden kaynaklandığını bulursunuz...

bu tarz işlerde kristal pcb çizimleri beslemeye dikkat etmek lazım...

zakbay

pause 200 komutunu

tris yönlendirmelerinden sonra kullan

  TRISB=%00000101
  TRISA=%00001111

  PORTB=0
  PORTA=0

pause 200
Tek dostum çalışmak...

selvi

Alıntı yapılan: "zakbay"pause 200 komutunu

tris yönlendirmelerinden sonra kullan

  TRISB=%00000101
  TRISA=%00001111

  PORTB=0
  PORTA=0

pause 200
bahsettiginiz sekilde programi degistirdim,sorun eski haliyle devam ediyor.
Yaşam anlamlandırıldıkça kutsaldır....

Maxim

bence sizin sorununuz ilk enerji vermede picin kararsız kalması,
bunun için kullanılan özellikler var,

POR = power on reset , ilk çalıştırmada pici 72ms resette tutuyor .
bu özellik, 16F84A da var , konfig ayarlarına bakınız o açıkmı ?

BOR = brown out detect , voltaj belirli bir değerin altına düştüğünde pici resete götürüyor, bu aşamada ilk çalıştırmada da aynı görevi gördüğünden emin değilim ,yani ilk çalıştırmada örnek voltaj 4 voltu geçene kadar pic resette kalıyormudur acaba?
bu özellik 16F84A da yok mesela .

PWRT = bu da POR gibi ama biraz farklı sanırım ,

kısacası sizin konfig ayarlarınızı bir görmek lazım ,
hiçbirşey olmadı mlcr ucunu tek transistor ve birkaç direnç ile ilk çalıştırmada kısa süre resette tutan basit bir devre yapmak lazım.

selvi

84.inc dosyasinda asagidaki konfig ayarlari var.
   NOLIST
   ifdef PM_USED
       LIST
       include 'M16F8x.INC'    ; PM header
       device  pic16F84, xt_osc, wdt_on, protect_off
       XALL
       NOLIST
   else
       LIST
       LIST p = 16F84, r = dec, w = -302
       INCLUDE "P16F84.INC"    ; MPASM  Header
       __config _XT_OSC & _WDT_ON & _CP_OFF
       NOLIST
   endif
       LIST
Yaşam anlamlandırıldıkça kutsaldır....

mustafa_cmbz

bekçi köpeği ile işiniz yok ise onu daima bu tarz programlarda kapatın yoksa sorun yaşarsınız..

Maxim

evet wdt yi kapatın ,
birde orada pwrt ayarı gözükmüyor acaba default açıkmıdır ,

en iyisi siz pice yazarken konfig yarlarını manuel olarak ayarlayın ,
hangi programlayıcı kullanıyorsunuz bilmiyorum ama çoğunda vardır konfig ayarı ,o zaman derleyicinin ayarları dikkate alınmamış olur ,

son olarak tekrar etmek isterimki, mlcr ucuna koyulacak bir transistor ile pici ilk enerji sırasında kısa süre resette tutabilirsiniz

selvi

config ayarlarini manuel olarak asagidaki sekilde yazdim.
@ DEVICE pic16F84 'islemci 16F84
@ DEVICE pic16F84, WDT_OFF 'Watch Dog timer kapali
@ DEVICE pic16F84, PWRT_ON 'Power on timer acik
@ DEVICE pic16F84, PROTECT_OFF 'Kod Protek kapali
@ DEVICE pic16F84, MCLR_OFF 'MCLR pini kullaniliyor.
@ DEVICE pic16F84, XT_OSC 'Dahili osilatör kullanilmayacak
@ DEVICE pic16F84, LVP_OFF
@ DEVICE pic16F84, BOD_OFF
derleyicide asagidaki sekilde bir yazi cikti.
undefined symbol mclr_off,lvp_off,bod_off
Yaşam anlamlandırıldıkça kutsaldır....

mustafa_cmbz

16f84 ve 16f84a olunca bu tarz hatalar veriyor...verdiğin configler a ve a olmayanda bulunmuyor...

selvi

Yaşam anlamlandırıldıkça kutsaldır....

mustafa_cmbz

vallahi çözemedim olayı...ama programlayıcından denersen olacaktır...yani pic'e hex.'i attığın programın config bölümünden yaparsan olacaktır...

Maxim

16F84 ve 16F84A da
mclr_off,lvp_off,bod_off kullanamazsınız

mclr yi kapatamazsınız,
lvp yani low voltage programming desteği yoktur,
boden olayıda yoktur,

o yüzden alınan hatalar geyet normaldir.