T

12f675 asm kod derleme sorunu

Başlatan turbojet, 29 Eylül 2013, 22:14:47

turbojet

herkese merhabalar,

mikro kod sütüdyo da aşağıdaki programı derleyemiyorum üstteki pıc tanımlamalarından dolayı asm hatası veriyor ne yaptıysam düzeltemedim başka forum sitelerindeki kaynaklarıda okudum yazılanları uyguladım ama olmuyor bu iştede acemiyim kafayı yiyecem uğraşmaktan allah rızası için biri bana detaylı olarak ne yapmam gerektiğini yazabilir mi..

@ DEVICE pic12f675, WDT_ON              'Watch Dog timer açık
@ DEVICE pic12f675, PWRT_ON             'Power on timer açık
@ DEVICE pic12f675, PROTECT_ON          'Kod Protek açık
@ DEVICE pic12f675, MCLR_OFF            'MCLR pini kullanılMIYOR.
@ DEVICE pic12f675, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak


CMCON=7          
OPTION_REG.7=1
ANSEL=0

symbol LED1 = GPIO.0
SYMBOL LED2 = GPIO.1
SYMBOL TUS1 = GPIO.2

BASLA:

LG1:
IF TUS1=0 THEN ALG2
       HIGH LED1 
      PAUSE 50
IF TUS1=0 THEN ALG2
        LOW LED1
      PAUSE 50
IF TUS1=0 THEN ALG2
       HIGH LED1 
      PAUSE 50
IF TUS1=0 THEN ALG2
        LOW LED1
      PAUSE 50
IF TUS1=0 THEN ALG2
       HIGH LED1 
      pause 50
IF TUS1=0 THEN ALG2
        low led1
      PAUSE 50
IF TUS1=0 THEN ALG2
       HIGH LED1 
      pause 50
IF TUS1=0 THEN ALG2
        low led1
      PAUSE 100
IF TUS1=0 THEN ALG2
       HIGH LED2 
     PAUSE 50
IF TUS1=0 THEN ALG2
       LOW LED2
     PAUSE 50
IF TUS1=0 THEN ALG2
      HIGH LED2 
     PAUSE 50
IF TUS1=0 THEN ALG2
       LOW LED2
     PAUSE 50
IF TUS1=0 THEN ALG2
      HIGH LED2 
     pause 50
IF TUS1=0 THEN ALG2
       low led2
     PAUSE 50
IF TUS1=0 THEN ALG2
      HIGH LED2 
     pause 50
IF TUS1=0 THEN ALG2
       low led2
     PAUSE 100
GOTO ALG1
'********2.ANİMASYON********
ALG2:
IF tus1=0 THEN ALG2
ALG22:
IF TUS1=0 THEN ALG3
       HIGH LED1 
       HIGH LED2
      PAUSE 50
IF TUS1=0 THEN ALG3
        LOW LED1
        LOW LED2
      PAUSE 50
IF TUS1=0 THEN ALG3
       HIGH LED1 
       HIGH LED2
      PAUSE 50
IF TUS1=0 THEN ALG3
        LOW LED1
        LOW LED2
      PAUSE 50

kılıckaya

#1
Şunları dener misin;
@ Device MCLR_OFF , PROTECT_ON , WDT_OFF , INTRC_OSC_NOCLKOUT , CPD_ON , BOD_ON , PWRT_ON
Bir de şu dikkatimi çekti:  IF TUS1=0 THEN ALG2 demişsiniz , burada yazmanız gereken şu olabilirdi " IF TUS1=0 THEN GOSUB ALG2" ALG2 nin içinde hem döngü yok hem de ALG2 den çıkmak için Return komutunu kullanmamışsınız. Ekteki dosyayı inceleyin, yapmak istediğiniz bu mu?

onurinci

bu tür sorularda çabuk cevap alabilmen için ,soru odaklı bir şekilde olmalı.
sizin kullandığınız işletim sistemini 32bit'mi 64 bit'mi ,ve derleyicinizin versiyonunu 2.60 yada 3.0 gibi bizim tahmin etmemiz olanaksız bunu sizinde biliyor olmanız lazım.
bu donelerden sonra net cevaplar alabilirsiniz.

ete

Sigorta ayarlarından dolayı derleyici hata veriyor ise mutlaka MCS de assembler olarak MPASM seçilidir.
Anlamak için, Yukarıda yer alan View menü butonuna tıkla. Açılan pencerede  "Compile and Program Options" seçeneğini seç
Yeni bir pencere açılacak. Orada ortada yer alan "Assembler" butonuna tıkla. Yeni pencerede sağda yer alan "Use  MPASM" şeklinde yer alan bir kutucuk var. O kutu seçili durumda ise sorunun budur. Seçimi kaldır (üzerine tıklayarak) ve yeniden derlemeyi dene.
Ancak , makinan (PC) 64 bit ise zaten MPASM ile derleme yapmaktan başka seçeneğin yok demektir. O zaman sigorta ayarlarını MPASM nin formatına uyduracaksın demektir.
Nasıl yapılacağı ve konu ile ilgili detaylı açıklama aşağıdaki linkte bulunmaktadır. Orayı dikkatlice oku ve uygula,

http://etepic.com/index.php/topic,300.0.html

Ete

turbojet

yardımlarınız için gercekten teşekkürler arkadaşlar;

şimdi ki sıkıntı gerçekten sinir bozucu. asm kodunu basa ekleyince asm kodunun ulunduğu satırda hata veriyor. asm yi kaldırınca derliyor. bi sıkıntı olmuyo. kullandığım versiyon 3.0 acaba vesiyon farklılığı veya kurulum sırasında gösterilmesi gereken bi dosya yolu mu var? artık kurulum sırasında bi hata mı yaptım diye düşünmeye başladım.çünkü sizin dediklerinizi uyguluyorum ama olmadı bazende dosyayı arıyor arıyor bi türlü bulamıyor.yardımcı olabilecek arkadaşlar bi el atarsalar cok iyi olacak. şimdiden teşekkürler...

turbojet

hocam bu ekteki sistem dosyasındamı değişiklik yapmak gerekiyor

bu arada entegrede dahili osilatör kullanacam ....elinizde düzgün çalışan ayarları yapılmış güzel bir program varsa ekleyebilirmisiniz....cevaplarınız için çok teşekkür ederim çok ilgileniyorsunuz başka sitelerde takmıyorlar bile ))))

turbojet

işletim sistemim 32 bit inc dosyalarında da değişiklik yapmayı denedim olmadı ...programın başına sizin yazdığınız tanıtmayıda yazdım olmuyor olmuyor asm yine derlemiyor nenem aşkına))))

turbojet

sorunu bununla hallettim .. nasıl oldu bilmiyorum ama oldu ....


@ __CONFIG _CP_ON & _MCLRE_OFF & _WDT_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

ete

3.0 Basic versiyounu kullandığını baştan söylesen sorunun daha çabuk çözülürdü.
Hem neden 3.0 ,? henüz oturmamış etrafta çok fazla örneği olmayan bir derleyiciyi tercih nedenin nedir acaba. Daha ileri versiyon olmasımı?. İleri versiyonlar daima BUG denilen kusurlarla doludur. Bunlar zamanla düzeltilirler yada hiç düzeltmeyip yeni bir versiyon çıkartırlar. O da kusurludur ancak 10 sene sorna sistem yerine oturur.

Ete

Powered by EzPortal