S

pic devresine drenc ve kırıstal baglamadan

Başlatan salihtolu, 02 Eylül 2011, 12:20:35

salihtolu

kırmızıyla yazdıgım device bölümünü ekledigim zaman
warning (207)
error (122)  10 taneye yakın hata veriyor
en alttada asmbler error diyor. yardımcı olursanız sevinirim.
device bölümünü yazmayınca derliyor bu severde hazırladıgım kartta calışmıyor ama aynı programın hex dosyasını atıyorum o kartta calışıyor. lütfen acil yardım.


@ DEVICE pic16F628A , INTRC_OSC_NOCLKOUT
            
@ DEVICE pic16F628A , WDT_ON
      
@ DEVICE pic16F628A , PWRT_ON
         
@ DEVICE pic16F628A , BOD_ON
         
@ DEVICE pic16F628A , MCLR_OFF
         
@ DEVICE pic16F628A , LVP_OFF
         
@ DEVICE pic16F628A , CPD_OFF
      
@ DEVICE pic16F628A , PROTECT_OFF

      




ete

#1
Salihtolu,
Muhtemelen MPASM kullanarak derleme yaptırıyorsun. Bunun iki sebebi olabilir.
Birincisi makinen 64 bitliktir bu yüzden zorunlu olarak MPASM seçeneğini kullanıyorsundur.
İkincisi yanlışlıkla oraya tıklamışındır ve o şekilde kullanıyorsundur.
Makinen 64 bit değil ise aşağıdakileri yapman gerek.
Olayı anlamak için;
MicroCodeStudio da, View menüsünü aç ve "Compile & Program Options " seçeneğini seç
Açılan pencerede ortada yer alan Assemler butonuna tıkla bakalım.
Sağ tarafta yer alan  "Use MPASM" kutucuğu boşmudur dolumudur? Dolu ise üzerine tıklayarak boş hale getir.
Bu şekilde yeniden derle bakalım aynı hataları verecekmidir.

Makinen 64 bit ise sigorta ayarlarını MPASM formatına uygun vermek gerekecek. Bunu şayet makinen 64 bit ise anlatayım.

Bu arada programda Comparatör seçeneğini iptal eden CMCON=7 komutunu göremedim.
A portunu kullanıyor isen bu komutu programın başına koyman gerek. Aksi taktirde A portu doğru çalışmayacaktır.

Ete


salihtolu

hocam eksik bilgi verdigim için özür dilerim makinam win 7 64 bit bu program hazır kullanılan programdır farklı pc de denendigi için sorun cıkarttı, 64 bit için yapmam gerekenler nelerdir birde programı inceledinizmi bu program a ve b portlarının hepsinden cry lerde dahil cıkış alınıyor kartın üstünde pulup puldown drencleri yok dolayısıyle cry de yok bu şekilde dzayn edilmiş fikrinizi ,önerilerinizi bekliyorum.
  led animasyonu yapılıyor ben aslında plc lerle ugraşıyorum 2 sene önce sizin derslerinizi takip ediyordum sayenizde bir kac iş yaptım.bu programıda bizim sektörden bir arkadaş getirdi degişiklik yapmam için kıramadım ama pc dede programı derleyemedim bu konudaki yardımınızı bekliyorum birde hocam , bu programın içinde ledi karartıp aydınlatıyor sagmet olmassa
tek led karartıp aydınlatan pic16f628a için kısa program yazarmısınız kartın üstündeki entegre smd li 16f628a dır saygılar acele cevabınızı bekliyorum selamunaleyküm.

salihtolu

hocam fırsatın olmadımı müsaitsen pc nin başında bekliyorum tşk.

ete

#4
64 bit makinada bu programı derlemek için,
Öncelikle MCS içinde PBP2xx klasörü içinde yer alan
16F628A.INC  dosyasını yükleyip aşağıdaki satırın kapatılıp yeniden geriye kayıt edilmesi gerekir.
Ben satırın kapatılmış halini veriyorum kolay bulabilmeniz için.
        INCLUDE "P16F628A.INC"  ; MPASM  Header
;        __config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
        NOLIST
    endif
        LIST

Bu satırlarda _Config ile başlayan satırın başına yukarıda görüldüğü gibi ; işaretini koymanız yeterlidir. Daha sonra dosyayı yeniden kayıt ediniz.

Bu işlemden sonra program başında yer alan sigorta ayarlarını silerek aşağıdakini yazınız yada kopyalayıp oraya yapıştırınız.
@ __config _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _BODEN_ON & _WDT_ON & _MCLRE_OFF & _LVP_OFF & _CP_OFF & _DATA_CP_OFF

Daha sonra, MCS de view menüsü- Assembler seçeneğinde MPASM kutusunun seçili olduğundan emin olunuz.
Bu şekilde derlediğinizde program hatasız ve sigorta ayarları ile birlikte derlenecektir.

Yazdıklarından anlamadıklarım var. "cry lerde dahil cıkış alınıyor" ne demektir özellikle cry ne demektir. Açık yazarsan sevinirim.

16F628 de PortA.4 open collectordür ve tedbir alınmaz ise bu pinden HIGH çıkamaz. Şayet pullup direnci yok ise bu pin çalışmıyor gözükecektir.
Bunun dışında PortA pinleri default olarak Komparatör olarak çalışır. Bunu iptal edebilmek için CMCON=7 komutunu programın başında vermek gerekir.

Programda ne gibi bir değişiklik yapıldı yada istendi anlayamadım.  Bu programda led karartma yapacak komut göremedim.

Yavaş yavaş aydınlatma yada karartma için kesinlikle PWM kullanmanız gerekir. Bütün pinlere ayarı ayrı PWM uygulamak çok zor bir iştir ve uzun program yazılmasını gerektirir.  Özel istekler için program yazmam mümkün değil maalesef.
Bu konuda kesin prensibim var. Düşünün her üye benden bir program isterse ben ne yaparım. Bu nedenle yalnzca yol gösteririm. Yazılmış programları denetlerim ve daha başka ne gerekiyorsa yardım ederim ama programı sıfırdan yazamam maalesef.

Ete



salihtolu

hocam sizi iyi anlıyorum amacım led pwm işleminin nasıl yapıldıgıydı cry kırıstal kısaltması olarak yazdım isterseniz calışan programın hex ni göndereyim karta yükleyince ledler pwm ile kararıp aydınlanıyor.
  gönderdiniz sigorta ayarlarını yükledim şu hatayı verdi ne yapmalıyım.
error(118)c:\progra~2\mecani~1\mcs\yeni1.asm86: overwriting previos address contents (2007)
hatası veriyor

ete

#6
Bu hatanın sebebi PBP klasöründeki o bahsini ettiğim satırın kapatılmamış olmasıdır.

Ben biraz evvel denedim sorunsuz derlendi.

Derleme yapılırken öncelikle 16F628A.INC (PBP klasörü içinde) dosyasından yararlanır derleyici. Daha sonra MPASM yi assembler olarak kullanırsanız bu seferde MPASM klasöründe yer alan P12F628A.INC dosyasından yararlanır derleyici.
Her iki dosyada da standart sigorta komutları vardır. Aynı komutu iki defa yada ikinci defa tatbik ederse bu seferde öncekinin üzerine yazıyorum diye ikaz verir. Bunu önlemek için PBP klasöründe yer alan 16F628A.INC dosyası içinde MPASM için belirlenmiş sigorta komut satırını ya silmek yada ileride kullanmak isterseniz şimdilik kapatmak yani işlem dışı bırakmak gerekir. Benim tarif ettiği yöntem işlem dışı bırakmak şeklinde idi. Satırı kapatırsanız (satır başına ";" işareti koyarak) o satır işleme alınmaz.

Ete

salihtolu

#7
error(118)c:\progra~2\mecani~1\mcs\yeni1.asm86: overwriting previos address contents (2007)
hocam aynı hata devam ediyor isledigim yol şöyle
c:\program dosyaları(x86) mecanique mcs pbp 16f628a.inc tıklı yorum mcs acılıyor
bahsettiginiz satırın başına ; bu işareti koyup kaydediyorum programdaki sigortalarıda silip sizin gönderdiginiz paragrafı yapıştırıyorum hata yukarıdakini veriyor ne yapmalıyım saygılar bekliyorum hakkını helal et hocam
inc in icerigi böyle
;****************************************************************
;*  16F628A.INC                                                 *
;*                                                              *
;*  By        : Leonard Zerman, Jeff Schmoyer                   *
;*  Notice    : Copyright (c) 2003 microEngineering Labs, Inc.  *
;*              All Rights Reserved                             *
;*  Date      : 11/06/03                                        *
;*  Version   : 2.45                                            *
;*  Notes     :                                                 *
;****************************************************************
        NOLIST
    ifdef PM_USED
        LIST
        include 'M16F62xA.INC'  ; PM header
        device  pic16F628A, xt_osc, wdt_on, mclr_on, lvp_off, protect_off
        XALL
        NOLIST
    else
        LIST
        LIST p = 16F628A, r = dec, w = -302
         INCLUDE "P16F628A.INC"  ; MPASM  Header
      ;  __config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
        NOLIST
    endif
        LIST

ete

mcs de view menusunde compiler butonuna tikla ve ekranda pbp adresi ne olarak goruluyor onu bildir.
Pbp derleyicisi C ana klasorunde yer almalidir.
Ete

salihtolu


ete

#10
Peki sen neden farkli adresteki ....inc dosyasini degistiriyorsun?
Degistirmen gereken dosya c:\pbp.  klasorunde.
ete

salihtolu

hocam selamunaleyküm
teşekkürler hocam emeginize saglık

Powered by EzPortal