18F2525 Derleme hatası yok Ama kararlı çalışmıyor

Başlatan zeus48, 17 Nisan 2017, 23:31:17

zeus48

Arkadaşlar Mrb. İki yıl önce 18f2525 ile okul zili yapmıştım. Yaparken ete hoca ve diğer arkadaşlardan yardım almıştım. İki yıldır düzenli çalıştı  fakat yazılımda tek bir değişiklik yakmak zorunda kaldım . Değişiklik 50ms  bekleme süresini 2 sn çıkartmam gerekti. Yaptım sorunsuz bir şekilde derlendi pic e yükledim ama kararsız çalıştı, tekrar eski hex yükledim sorun yok. Nerde hata yaptım çözemedim

_________Tanımlama ayarları----------------------

INTRC_OSC_NOCLKOUT ;Dahili osilatör kullanılacak     
OSCCON=111               ;8 mhz dahili osc

CMCON=7                   
ADCON1=%00001111     
INTCON2=7           ;Portb nin dahili direçleri aktif edildi

TRISA=%00010000
TRISB=%00111111
TRISC=%00000000

PORTA=0
PORTB=0
PORTC=0



------------PBP------------------------------
NOLIST
    ifdef PM_USED
        LIST
        "Error: PM does not support this device.  Use MPASM."
        NOLIST
    else
        LIST
        LIST p = 18F2525, r = dec, w = -311, w = -230, f = inhx32
        INCLUDE "P18F2525.INC"   ; MPASM  Header
__CONFIG    _CONFIG1H, _OSC_INTIO67_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
__CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
__CONFIG    _CONFIG3H, _CCP2MX_PORTC_3H & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_ON_3H
__CONFIG    _CONFIG4L,  _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L
        NOLIST
    endif
        LIST
EEPROM_START   EQU   0F00000h
BLOCK_SIZE   EQU   64






-----------MPASM---------------------------------------
;----- CONFIG1H Options --------------------------------------------------
_OSC_LP_1H           EQU  H'F0'    ; LP
_OSC_XT_1H           EQU  H'F1'    ; XT
_OSC_HS_1H           EQU  H'F2'    ; HS
_OSC_RC_1H           EQU  H'F3'    ; RC
_OSC_EC_1H           EQU  H'F4'    ; EC-OSC2 as Clock Out
_OSC_ECIO6_1H        EQU  H'F5'    ; EC-OSC2 as RA6
_OSC_HSPLL_1H        EQU  H'F6'    ; HS-PLL Enabled
_OSC_RCIO6_1H        EQU  H'F7'    ; RC-OSC2 as RA6
_OSC_INTIO67_1H      EQU  H'F8'    ; INTRC-OSC2 as RA6, OSC1 as RA7
_OSC_INTIO7_1H       EQU  H'F9'    ; INTRC-OSC2 as Clock Out, OSC1 as RA7

_FCMEN_OFF_1H        EQU  H'BF'    ; Disabled
_FCMEN_ON_1H         EQU  H'FF'    ; Enabled

_IESO_OFF_1H         EQU  H'7F'    ; Disabled
_IESO_ON_1H          EQU  H'FF'    ; Enabled


zeus48

Not: Aynı yazılımı değişiklik yapmadan derliyorum hex yükleyip takıyorum gene sorunlu çalışıyor. İlk yazılımı yaparken işletim sistemim XP pro 32 bit.
Şimdi Win 7 64 bit

ete

Karasız çalıştı demek benim açımdan yetersiz bir açıklama. Bu şuna benzer senin sorununa vardır bir yerlerde bir kusur. Şimdi bu cevap seni tatmin edermi? Etmemesi gerekir çünki somut bir çözüm getirmiyor. Sadece basit bir akıl verme. Kararsız çalıştı demekte öyle. Asıl sorunu söylemez isen tam çözüm gelmeyecektir. İşlemci kararsız çalışmaz. Ne komut verirsen onu yapar. Bir yere 2sn lik gecikme koyman demek programı orada 2sn hapsetmen demektir şayet akıllıca bir gecikme uygulamadı isen. Bu süre zarfında program asıl yapması gereken şeyleri erteleyebilir bu da sana kararsızlık olarak yansıyabilir. Uzun süre geçtikten sonra yapılacak değişiklikleri hiç sevmem. Çünki yüzeysel bir çalışma olur. Programın tamamına olan hakimiyetin kaybolmuştur. Yaparsın bir değişiklik ama nereleri etkileyecek kestiremezsin hakim değilsindir çünki. Bu açıklamalara bakıp yeniden değerlendir istersen.

Ete

zeus48

Ete hoca cevabın için tşk. Haklısın somut bır açıklama yapmadığım belli.Ben sorunumu tam olarak anlatamamışım. Hocam  sadece bir konuda yardım istiyorum sizden. İki yıl önce yaptım yazılımı derledim devresini yaptım işlemciye hex i yükledim bugüne kadar sorunsuz çalıştı. Şimdi aynı yazılımı hiçbir değişiklik yapmadan win 7  64 bit işletim sistemimle yeni hex oluşturuyorum hex i işlemciye yüklüyorum  aynı devreyi takıyorum ekran geliyor bir süre sonra ekran kara kare oluyor  menü tuşuna basınca işlemci yeniden başlıyor. Aynı işlemciye eski oluşturduğum hex yüklüyorum hiçbir sorun yok.  Ben sorunun sigorta ayarlarından olduğunu düşünüyorum.  Daha öncede 18F2525 işlemci konusunda sizden yardım almıştım  ve aynısını tekrar uyguluyorum ama sorunumu çözemedim.  Yukarıda pbp dosyasının  ve mpasm nin bu işlemciyle alakalı ayarlamaları verdim. Umarım bu sefer sorunumu anlatabilmişimdir. İyi çalışmalar

ete

Sıkıntını zaten anlamıştım ama verdiğin o kod parçaları programa ait değil. Sebebi yine basit;
Dhili OSC mi kullanıyorsun yoksa kristal mi kullanıyorsun belli değil.
Kaç Mhz çalışıyorsun belli değil. Bunlar belli olmayınca neyin doğru neyin yanlış olduğuna ben nasıl karar vereceğim.
INTRC_OSC_NOCLKOUT ;Dahili osilatör kullanılacak     
OSCCON=111               ;8 mhz dahili osc
bu iki satır dahili osc kullandığını gösteriyor. Hemde 8 Mhz.
Ama OSCCON değeri 111 olunca işler karışıyor. Zira bunun binary açılımı  %01101111 şeklindedir. Bu ise bana göre yanlış değer.
doğru OSCCON değeri ise %01110000 şeklind eolmalı. Anlaşılan binary değerin bir kısmını alıp desimal olarak kullanmışsın gibi geldi bana.
Programda mutlaka Define OSC 8 komutu yer almalıdır. Aksi halde işlemci pause değerlerini ve buna bağlı bazı zamanlama işlerini şaşırır ve default değer olan 4 Mhz üzerinden uygular.

Altta verdiklerin hepten alakasız şeyler. Tamamen CONFIG1H opsiyonları yani olası ayarlar burada belirtilmiş. Bunlar ayarlanmış değerler değil olası ayarlanabilecek değerler.
Ne yaptığını anlamadım.
Eski programdaki sigorta ayarların ile yeni programdaki sigorta ayarlarını buraya koymaz isen neyi yanlış neyi doğru yaptığını çözemeyeceğim. Kusura bakma.
64 bit derlemede kullanman gereken sigorta ayarları aşağıdadır. Bunları içgüdüsel olarak tahmin edip buraya koyuyorum.
asm
    __CONFIG _CONFIG1H, _OSC_INTIO67_1H  & _FCMEN_OFF_1H & _IESO_OFF_1H
    __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L
    __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_256_2H
    __CONFIG _CONFIG3H, _CCP2MX_PORTBE_3H  & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_OFF_3H
    __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L  & _XINST_OFF_4L & _DEBUG_OFF_4L
   
    __CONFIG _CONFIG5L, _CP0_ON_5L  & _CP1_OFF_5L & _CP2_OFF_5L
    __CONFIG _CONFIG5H,_CPB_OFF_5H & _CPD_OFF_5H
   
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L
    __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
    __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L
    __CONFIG _CONFIG7H, _EBTRB_OFF_7H
endasm


Ete

zeus48

Ete hocam tşk çalıştı. Fark olarak sadece senin verdiğin alttaki ayarları değiştirdim. Fakat bu ayarlarda  işaretlediğim komutu hata verdi .Bende kaldırdım derledim sorunsuz çalişıyor. Sağol

& _BOR_OFF_2L  derlerken bunda hata verdi  bende kaldırdım.Ne olduğunu bilmiyorum


Powered by EzPortal