18f4550

Başlatan styx75, 06 Nisan 2014, 19:31:16

styx75

selam..
acaba pbp ile 16f877a için yapılmış bir program 18f4550 nin siğorta ayarlarını değiştirip kullanılabilirmi

Mucit23

Çalışıp çalışmaması yüklenecek programa göre görecelidir. Örneğin kesme ayarlarında farklılıklar vardır. Kesme kullanılıyorsa gerekli değişiklikler yapılmalıdır.

Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Sigorta ayarlarından ziyade iki işlemcinin özellikleri karşılaştırılmalı ve kullanılmayanlar kapatılmalıdır.
Ete

styx75

pic olarak 18f4520 kullanmayı düşünüyorum bu duruma göre ayarları nasıl değiştirmem gerekir

@ DEVICE pic16F877A, XT_OSC 	' 4 MHz osilatör kullanılacak 
@ DEVICE pic16F877A, WDT_OFF ' Watchdog Timer kapalı
@ DEVICE pic16F877A, PWRT_ON    ' Power-On Timer açık
@ DEVICE pic16F877A, BOD_OFF    ' Brown-Out Detect kapalı
@ DEVICE pic16F877A, LVP_OFF    ' Low-Voltage Programlama kapalı
@ DEVICE pic16F877A, CPD_ON    ' Data belleği kod korumalı değil
@ DEVICE pic16F877A, PROTECT_OFF ' Program belleği kod korumalı değil
DEFINE OSC 4
ON INTERRUPT GoTo KESME
OPTION_REG=%0000000
INTCON=%10001000
CMCON=7
ADCON1=7
TRISB=%11100000   
TRISA=%00000000 
SYMBOL RBIF=INTCON.0
SYMBOL TUS1=PORTB.7
SYMBOL TUS2=PORTB.6
SYMBOL TUS3=PORTB.5
SAYAC1 VAR BIT

DURUM VAR BYTE
PORTA=0
DURUM=PORTB
PAUSE 500
BASLA:
  IF SAYAC1=1 THEN HIGH PORTA.0
  IF SAYAC1=0 THEN LOW PORTA.0

  DISABLE
KESME:
  DURUM=PORTB
  TOGGLE SAYAC1
 
  DURUM=PORTB
  RBIF=0
 
  resume 
  Enable 
  End  

styx75

ayrıca derleyici olarak mcs kullanıyorum bununla ilgili varsa ayarları yazarsanız sevinirim
saygılar..

ete

MCS derleyici değildir. Editör programıdır. Derleyici PBP dur. Derlemeyi iki alternatifli yapar. İlk derleme sonucunda bir ön hazırlık dosyaları yaratılır. Sonra bu dosyalar kullanılarak ya PBP nun kendi assembler'i olan PM assembler yada MPASM assembleri ile hex dosyası elde edilir. Şayet kullanılan işlemci 12F-16F serisi ise PM Assembler ile bu işlem yapılabilir. Bu durumda sigorta ayarları standart şekilde  DEVICE PIC16F88, INTRC_OSC_NOCLKOUT formatında verilir.
Şayet derleme işlemini MPASM ile yaptırmak isterseniz yada işlemciniz 18F serisinden ise bu durumda sigorta ayarlarını,
ASM
  __CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
  __CONFIG _CONFIG2, _PLLEN_OFF & _LVP_OFF & _STVREN_OFF
ENDASM
formatında vermeniz gerekir.

MPASM formatındaki sigorta aayrlarını öğrenmek için MPASM klasörü içinde yer alan ve P16Fxxxx.INC veya P18Fxxxx.INC şeklinde verilmiş olan işlemci adı ile belirlenmiş INC uzantılı dosyayı açıp dosyanın sonlarına doğru verilmiş bütün sigorta ayar alternatiflerini görebilirsiniz.

Burada söz konusu ile 18F4520 işlemcisi için, MPASM klasörü içinde yer alan P18F4520.INC dosyasını (MCS içinde açabilirsiniz) açıp  sonlarda yer alan sigorta ayarlarına bakarak istediklerinizi seçebilirsiniz.

Gelelim İŞlemci özelliklerine 18F877 ye ait kullanılan özellikler programda belirlenmiş durumdadır.
Bunların en azından aktive edilmesi için 18F4520 data sheet'i açılıp benzer özelliklerin hangi registerlerle kullanılacağına bakmak gerekir.

Bu en azından zaman alan ve biraz da zahmetli bir iştir. Bunu kendiniz yapmaya çalışmanız gerekir. Bu konuyu başkalarından isterseniz belki bir kereliğine alabilirsiniz ama ya sonra her zaman aynı bilgileri isteyecekmisiniz. Neden kendiniz bu iş nasıl oluyormuş deyip uğraşıp öğrenmiyorsunuz. Yine lisanı bahane etmeyin. Bu işin lisanla alakası yok. İngilizce bilmeyen nice kişi aynı işi başarı ile yapıyor. En azandan işin %90'ını yapında kusurlarınızı sorun derim.

Ete




gergy

#6
Ben de proton için config ayarlarını yazdım, ama ilk mesajda PBP'i görmemişim, b,raz gereksiz yere oldu ama belki başkasına yarar. Kristal frekansını yazmamışsınız, aşağıya 10 MHz kristal ve PLL aktifleştirilmiş halde 40 MHz hız için config ayarlarını ekledim. Direkt taktığınız kristal hızında çalışması için Declare Xtal = 10 ve OSC = HS şeklinde değiştirebilirsiniz. İç osilatör de kullanılabilir ancak ilk etapta kafa karıştırmamak adına belirtmedim.



Device = 18F4520
Declare Xtal = 40

Config_Start
  OSC = HSPLL    ;HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1)
  FCMEN = OFF    ;Fail-Safe Clock Monitor disabled
  IESO = On    ;Oscillator Switchover mode disabled
  PWRT = On    ;PWRT enabled
  BOREN = OFF    ;Brown-out Reset disabled in hardware and software
  BORV = 3    ;Minimum setting
  WDT = OFF    ;WDT disabled (control is placed on the SWDTEN bit)
  WDTPS = 32768    ;1:32768
  CCP2MX = PORTC    ;CCP2 input/output is multiplexed with RC1
  PBADEN = OFF    ;PORTB<4:0> pins are configured as digital I/O on Reset
  LPT1OSC = OFF    ;Timer1 configured for higher power operation
  MCLRE = On    ;MCLR pin enabled; RE3 input pin disabled
  STVREN = OFF    ;Stack full/underflow will not cause Reset
  LVP = OFF    ;Single-Supply ICSP disabled
  XINST = OFF    ;Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
  Debug = OFF    ;Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
  CP0 = OFF    ;Block 0 (000800-001FFFh) not code-protected
  CP1 = OFF    ;Block 1 (002000-003FFFh) not code-protected
  CP2 = OFF    ;Block 2 (004000-005FFFh) not code-protected
  CP3 = OFF    ;Block 3 (006000-007FFFh) not code-protected
  CPB = OFF    ;Boot block (000000-0007FFh) not code-protected
  CPD = OFF    ;Data EEPROM not code-protected
  WRT0 = OFF    ;Block 0 (000800-001FFFh) not write-protected
  WRT1 = OFF    ;Block 1 (002000-003FFFh) not write-protected
  WRT2 = OFF    ;Block 2 (004000-005FFFh) not write-protected
  WRT3 = OFF    ;Block 3 (006000-007FFFh) not write-protected
  WRTC = OFF    ;Configuration registers (300000-3000FFh) not write-protected
  WRTB = OFF    ;Boot block (000000-0007FFh) not write-protected
  WRTD = OFF    ;Data EEPROM not write-protected
  EBTR0 = OFF    ;Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
  EBTR1 = OFF    ;Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
  EBTR2 = OFF    ;Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
  EBTR3 = OFF    ;Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
  EBTRB = OFF    ;Boot block (000000-0007FFh) not protected from table reads executed in other blocks
Config_End

styx75

  asm
    __CONFIG _CONFIG1H, _OSC_XT_1H   
    __CONFIG _CONFIG2L, _PWRT_ON_2L
    __CONFIG _CONFIG2H, _WDT_OFF_2H   
    __CONFIG _CONFIG3H, _MCLRE_OFF_3H
    __CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
    __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L 
    __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H 
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
    __CONFIG _CONFIG7L, _EBTR0_OFF_7L   
    __CONFIG _CONFIG7H, _EBTRB_OFF_7H 

endasm
ON INTERRUPT GoTo KESME
ADCON1=15
CMCON=7
INTCON=%10000001
TRISB=%11100000   
TRISA=%00000000 
SYMBOL RBIF=INTCON.0
SYMBOL TUS1=PORTB.7
SYMBOL TUS2=PORTB.6
SYMBOL TUS3=PORTB.5
SAYAC1 VAR BIT

DURUM VAR BYTE
PORTA=0
DURUM=PORTB
PAUSE 500
BASLA:
  IF SAYAC1=1 THEN HIGH PORTA.0
  IF SAYAC1=0 THEN LOW PORTA.0

  DISABLE
KESME:
DURUM=PORTB
  TOGGLE SAYAC1
 

  RBIF=0
 
  resume 
  Enable 
  End  


ete hocam.18f serisininde 16f kadar pratik bilgi birikimi oldugunu varsayarak sormuştum..ama malesef çok fazla yok ve dediğiniz gibi baya zahmetli  :) ..
benim tespitlerim 18f4520 de g/ç ları dijital yapmak için adcon1 kaydedicisine 15 sayısını atamak gerekli yani adcon1=15 ..
portb değişiklik kesmesini aktive etmek içinde ıntcon kaydeticisinin 0. ve 7.bitini 1 yapmak gerekli 7. bit genel kesmeleri ,0. bit rb4-rb7 kesmesini..
bu durumda ıntcon=%10000001 yapmak gerekli..
yukardaki programı derlemeye çalıştıgım zaman ise "Overwriting previous address contents" hatası alıyorum hata nerde acaba
saygılar..

rexo

#8
Kullandığın pic in INC dosyasını aç oradaki satırları ;ile iptal et sonra tekrar kayıt edip çalıştır sorun düzelecektir .

styx75

#9
mpasm suite dosyasında bulunan inc dosyalarından bahsediyorsunuz sanırım..birde ; hangilerini iptal etmem gerekli hepsinimi

yusuf.ozyer

hocam bende ilk defa 18f4550 işlemcisini kullanmakdayım  ve işlemciye bootloader , bluetooth modülü ,reset butonu , boot butonu ve osilatörüm 20 mzh bunu 48 çıkartmalıyım  nasıl bir sigorta ayarları girmaliyim

Powered by EzPortal