64 bit PC için MCS de dahili osilatör sorunu

Başlatan mustikangal, 22 Kasım 2015, 20:16:28

mustikangal

Merhaba forumda da pic de de yeniyim.ETE abinin derslerini okudum forumdaki 64 bit makineler için picbasic tavsiyelerinizi uyguladım.
Ancak 12F629 içindeki dahili osilatörü kullanamıyorum.
Sorunum şu; pic ile led i yakıp söndürmek.
Kullandığım kod şu;

'*  Name    : UNTITLED.BAS                                      *
'*  Author  : Musti                              *
'*  Notice  : Copyright (c) 2015 Kangal Yazılım                 *
'*          : All Rights Reserved                               *
'*  Date    : 22.11.2015                                        *
'*  Version : 1.3                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
; __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _CP_OFF
TrisIO= %000000
LED;
HIGH GPIO.1
PAUSE 500
LOW GPIO.1
GOTO LED


Kodda mı yanlışlık var yoksa başka bir sorun mu var?
Windows 10 kullanıyorum.MCS sürümüm 4.0 ve mplab yüklü

ete

Muhtemel sorunları sıralayayım sen teker teker kontrol et birinden birisidir mutlaka.
1. Öncelikle Sigorta ayarlarını satır olarak kapatmışsın hiç bir komut vermemiş oluyorsun bu şekilde. Denemek için o satırın başında yer alan ; işaretini kaldır ve aşağıdaki eskilikleride tamamlayarak yeniden dene.

2. Bu işlemcide dahili osc nin bir kalibrasyon registeri vardır. OSCCAL=%10000000 komutunu başlarda bir yere ekle.

3. İşlemcinin çalışacağı frekansı komut olarak eklemen lazım. DEFINE OSC 4 komut satırını başlarda bir yere ekle.

4. Bu işlemcide dahili osc fabrikada kalibre edilerek kalibrasyon bilgisi son program adresi olan $3FFF adresine kayıt edilir.
İŞlemciye bir program yazılırken bu değer alınıp programla birlikte yeniden kayıt edilmesi gerekir. Bunu yaptıracak komut ise
DEFINE OSCCAL_1K 1   komut satırı olup yine yukarılarda bir yere eklenmesi gerekir.

5. İşlemciye ait registerler 8 bitliktir. Değer verilirken 8 bit üzerinden değer verilmelidir. TrisIO= %000000 komut satırında bit eksikliği var. Bunu TrisIO= %00000000 şeklinde düzelt.

7. Bu işlemcide komparatör vardır ve pinler açılışta default olarak komparatör fonksiyonu ile açılırlar. Sen ise digital giriş çıkış pini olarak kullanıyorsun. O halde ilk işin komparatör özlliğini kapatmak olmalı idi. Bunu yapan komut CMCON=7 şeklindedir.

8. Kullandığın yada kullanacağın sigorta ayar satırında MCLR_ON şeklinde bir komut kullanılmış. Bu MCLR pinine Pullup direnci bağlanacak anlamına gelir. Şema vermemişsin bu nedenle bağlayıp bağlamadığını bilemiyorum ama bağlaman gerekir. Yada MCLR_OFF yapman gerekiyor.

DEFINE OSCCAL_1K 1 komutu olmadan işlemciye program yazmaya kalkıştı isen muhtemelen son adresteki kalibrasyon bilgisi silinmiştir. Bu bilgi olmadan o işlemci çalışamaz. Şayet programlayıcı olarak PICKIT2 kullanıyor isen bu kalibrasyon değerini yeniden oluşturup yerine yazabilir. Bunun için Tools menüsünde OSCCAL seçeneğini seçip otomatik bul seçeneğini seçmek yeterli olacaktır. Şayet bu değeri yeniden oluşturacak durumda değil ise başka bir 12F629 kullanmanı öneririm. Zira elindeki çalışmayacaktır.

Ete


F®T

Programda osccal ile ilgili bir satır yok.Ayrıca int osc ayarınıda sigorta ayarında yapmamışsın.Bu sigorta ayarlarına göre program kendi dufault ayarlarını yapar.ETE hocamın belirttiği hususları yaparsan olur.Ayrıca bu pic ile 16f675 aynı aileden.Forumda 12f675 ile ilgili bir sürü program var.Onları aratıp faydalanabilirsin.Aşağıdaki kodda sana yardımcı olabilir.

@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF
DEFINE OSC 4
DEFINE OSCCAL_1K 1
TrisIO= %000000
LED:
HIGH GPIO.1
PAUSE 500
LOW GPIO.1
GOTO LED
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

mustikangal

çok teşekkür ederim yardımınız için.Dediklerinizi yaptım ve proteusta çalıştırdım.Şimdi pic e yükleyip deneyeceğim.
@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_OFF & _CP_OFF
OSCCAL=%10000000
DEFINE OSC 4
DEFINE OSCCAL_1K 1
CMCON=7
TrisIO= %00000000
LED;
HIGH GPIO.1
PAUSE 500
LOW GPIO.1
PAUSE 1000
GOTO LED

mustikangal

şimdi de microburn programı verify hatası veriyor.
kodun tamamı şu şekilde;
'****************************************************************
'*  Name    : UNTITLED.BAS                                                                                              *
'*  Author  : mustafa                                                                                                          *
'*  Notice  : Copyright (c) 2015                                                                                          *
'*          : All Rights Reserved                               *
'*  Date    : 22.11.2015                                        *
'*  Version : 1.3                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_OFF & _CP_OFF
OSCCAL=%10000000
DEFINE OSC 4
DEFINE OSCCAL_1K 1
CMCON=7
TrisIO= %00000000
LED;
HIGH GPIO.1
PAUSE 500
LOW GPIO.1
PAUSE 1000
GOTO LED

ete

Hatanın no oldığunu yazmak aklınıza gelmedi herhalde. Yalnızca hata veriyor demek işi çözmez. Yüzlerce hata vardır ve hepsi başka sebeplere dayanır.
Ama muhtemelen sizin kalibrasyon bilgisi silinmiştir.

Ete

mustikangal

Kusura bakmayın yazmayı unutmuşum.

Rom Error at 0x0000
Good 0x2828
Bad 0x3FFF

şeklinde bir hata kodu gösteriyor.
daha önce pic e program atmamıştım.Sadece proteusta denemiştim.Kalibrasyon yanar mı?

ete

Bu ikaz yada hata her neyse genellikle programlayıcı Pic'e programı yazamıyorsa ortaya çıkar.
Pic'e programın yazılmaması ise iki sebebe dayanabilir. Birincisi Pic bozulmuştur. İkincisi programlayıcı bozuktur.
Bana kalırsa PICKIT2 programlayıcısı olan birisini bul ve oradan program atmayı dene.

Ete

mustikangal

çok teşekkür ederim yardımınız için.Pickit bulmaya calışacağım.Ya da almam gerekecek galiba :)

Powered by EzPortal