avatar_Celal Kızılırmak

Pic dahili osilatör

Başlatan Celal Kızılırmak, 27 Şubat 2018, 12:30:12

Celal Kızılırmak

Arkadaşlar kolay gelsin pic 16f628a   dahili osilatörü aktif edemiyorm. Kodu yazıyorm ama
@ __config & _INTRC_OSC_NOCLKOUT
Ama gerçek devrede dahili osilatör kabul etmiyor.

Hattuşa

#1
çalışması lazımdı ama

ete

@Pro-TR,
16F628A da OSCON registeri bulunmuyor.

Soruna gelince, kodlarında hata var gibi , @ __config & _INTRC_OSC_NOCLKOUT şeklinde sigorta ayarı verilmez.
aşağıdaki ayarları verip tekrar dene,
@ __config _BODEN_ON & _BOREN_ON & _CP_ON & _PWRTE_ON & _WDT_ON & _LVP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT

Ete

Hattuşa

Alıntı yapılan: ete - 27 Şubat 2018, 13:25:47
@Pro-TR,
16F628A da OSCON registeri bulunmuyor.

Soruna gelince, kodlarında hata var gibi , @ __config & _INTRC_OSC_NOCLKOUT şeklinde sigorta ayarı verilmez.
aşağıdaki ayarları verip tekrar dene,
@ __config _BODEN_ON & _BOREN_ON & _CP_ON & _PWRTE_ON & _WDT_ON & _LVP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT

Ete


hocam ezbere konuşmuşum, işlemcinin datasheetine bakınca bende farkettim olmadığını ve mesajımı düzelttim

Celal Kızılırmak

Ete hocam sizn yazdığınoz gibi zaten benimde kodlarımda ama ben uzun mesaj olmasın diye sadece dahili osilatör kodunu yazdm

Hattuşa

o zaman bütün kodu eklerseniz hatanıza bakabiliriz. zira onlarca kez biz bu şekilde çalıştırdık 628a yı, zira bahsettiğiniz 628a kod yazan herkes tarafından basit işlerde tercih ettiği güzel bir işlemcidir. sonuç olarak;
ya kodunuzun başka bir yerinde hata var yada elinizdeki işlemci arızalı olabilir

ete

İnsanları anlamakta zorlanıyorum. Kimisi küçük bir şey sormak için bütün kodu buraya koyar kimiside bütün kod lazım olunca bir kelime koyar.
Burada doğru olan sorunla alakalı tüm satırı buraya koymandır. Çünki koyduğun şekilde zaten derleyicinin hata vermesi gerekir. O halde neden bizi yoruyorsun. Koy şu kodu bakalım. Yok koymak istemiyorsan bunuda anlarım. O zaman bana düşen işlemcin bozuk demek olacak başka alternatifi yok bunun. Zira belkide binlerce kere çalıştırdığım bir özelliği sen kullanamıyorsun. Doğrusunu gösteriyoruz benimkide öyle idi diyorsun demekki gerçekten işlemcin bozuk arkadaşım. Değiştir sen onu.

Ete


Celal Kızılırmak

****************************************************************
'*  Name    : LCD.BAS                                           *
'*  Author  :                                                   *
'*  Notice  :                                                   *
'*          : All Rights Reserved                               *
'*  Date    : 27.02.2018                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ __config _XT_OSC & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF & _INTRC_OSC_NOCLKOUT

'*****LCD TANIMLAMALARI******
DEFINE LCD_DREG     PORTB 'LCD DATA BACAKLARI PORTB'YE BAGLI
DEFINE LCD_DBIT     4     'LCD DATA BITLERI HANGÝ BITTEN BASLIYOR
DEFINE LCD_EREG     PORTB 'LCD ENABLE BACAGI HANGI PORTA BAGLI
DEFINE LCD_EBIT     3     'LCD ENABLE BITI HANGI PORTA BAGLI
DEFINE LCD_RSREG    PORTB 'LCD RS BACAGI HANGI PORTA BAGLI
DEFINE LCD_RSBIT    2     'LCD RS BACAGI HANGI BITE BAGLI
DEFINE LCD_BITS     4     'LCD 4 BIT BAGLI
DEFINE LCD_LINES    4     'LCD KAC SIRADAN OLUSUYOR
DEFINE OSC 4
SAYI VAR BYTE
TRISB=%00000000

PAUSE 500
LCDOUT $FE,1
CLEAR


BASLA:
LCDOUT $FE,$1,"CELAL KIZILIRMAK  " 
LCDOUT $FE,$C0,"SAYI.=",#SAYI

SAYI=sAYI+1
PAUSE 1000
IF SAYI>=30 THEN
PORTB.1=1
ELSE
PORTB.1=0
ENDIF
IF SAYI<255 THEN BASLA


END

İlyas KAYA

Kodunuzda zaten xt osc diye tanıtmışsınız altta da int rc yapmışsınız. Yukarıdaki  xt osc yi silin.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

Celal Kızılırmak

#9
Kaldırdım yine olmadı acaba portların giriş çikiş kodlarıylamı alakalı.

İlyas KAYA

Kodun başında bir tane led yakıp söndürün bakalım led çalışacak mi ?
Olmalı , olmadi diye birşey var ise bu ya bağlantınız hatalı demektir, ya lcd bozuk yahut pic bozuk demektir.
Ve genelde aaa şunu ters bağlamışım yada yanlış bağlamışım yada yaptım deyip yapmadığı şeyler den çıkar :)
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

ete

@ __config _XT_OSC & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF & _INTRC_OSC_NOCLKOUT
komut satırında _XT_OSC demekle devrem sen Kristal ile çalışacaksın diyorsun,
Satırın sonunda _INTRC_OSC_NOCLKOUT komutunu vermekle de sen dahili osc ile çalışacaksın diyorsun.
Devren iki şeyi aynı anda yapamaz.
İlyas'ın ikazı ile XT kısmını kaldırdım diyorsun ama nasıl kaldırdığını biz görmüyoruz. Bunu kaldırdım diyorsan yalnızca o satırın son halinide buraya koyman gerekirdi şöyle olmalı o satır;
@ __config _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF & _INTRC_OSC_NOCLKOUT

Olmadı derken nasıl bir deneme yaptığınıda buraya yazman gerekiyor. Her şeyi doğru yaptığından emin olmalıyız.
Zira genelde pic programlayıcılar sigorta ayarlarını değiştirebilme imkanı verirler. Sen acaba programa bunu koyup sonra pic2i programlarken oraları değiştiriyormusun?

Her şeyden önemlisi devrende işlemci çalışabilecek durumdamıdır. Yani kristal ile çalışabiliyormu? Devrenin çalışmadığına nasıl hükmediyorsun. Bunları açıklaman gerek ki bir yerlerde yaptığın hatayı bulup sana söyleyebilelim.

Bu tür çalışmalar iki şekilde gerçeğe dönüştürülür. Birincisi devreni tasarlarsın. SOnra programı yazarsın ve önce simule edersin. Simulasyonda çalışıyor ise gerçek devrende de çalışması gerekir deyip gerçek devreyi kurarsın. Gerçeğinde Çalışmıyor ise kontrol etmen gereken bir çok nokta olacaktır. Sitede önemi bilgiler başlığı altında simulasyonda çalışıp da gerçek te çalışmayan devrelerin sebeplerini açıklamış idik. Orayı okumanı öneririm.

Ete

Celal Kızılırmak

#12
Ete hoca söylediklerinizi dikkate alıcam
Söylediğiniz gibi programlama için mıcropro kullanıyorm bn ordan sigorta ayarlarında osilatörü xt yapıyorm acaba ondanmı kaynaklanıyor.

ete

Bak dediğim çıkıyor işte. Her şeyi açıklamamanın sıkıntısını yaşıyorsun. Biraz mantık çalışman gerekiyor.
XT, kristal kullandığın zaman kullanman gereken seçenek. Sen programdan dahili OSC seçmiş olsanda programlayıcıdan tekrar Kristale dönüyorsun elbette dahili osc ile çalışmaz bu sistem.
Umarım hatanı anlamışsındır.
Programda sigorta ayarı verdikten sonra bir daha programlayıcıdan sigorta ayarlarına dokunma bir şey değiştirme direk işlemciyi programla.

Ete

Celal Kızılırmak

Ete hocam teşekkürler kodu deneyemedm ama  akşam deneyeceğim denedikten sonra tekrar yazarım dilimizin ve bilgimizin dahilinde yorumlar yaptık yanlışımız olduysa affola pic programlamaya yeni geçtim tam bilgim yok o yüzden tekrardan yardımcı olduğunuz için teşekkürler.

Powered by EzPortal