Assembly derleme sorunu

Başlatan satilla, 17 Ocak 2010, 15:14:45

satilla

bilgisayarıma format attıktan sonra yazdıgım bütün programları mpasm derleyemez oldu sürekli hata veriyor genelde ise inc dosyasını bulamadıgına dair hata veriyor bende bu yüzden inc dosyasını ayzdıgım asm nin içine atıyorum ama bazen derleyici derliyor bazen derlemiyor
kitaptan aldıgım

__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON &_WDT_OFF& _XT_OSC

    clrf porta
    clrf portb
    bsf status,5
    movlw h'FF'
    movwf trisb
    clrf trisa
    bcf status,5

    bsf portb,1



         END

programı bile derleyemiyor

Klein

hata mesajını yazarsan , daha kolay cevap alırsın.

satilla

Warning[205] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 3 : Found directive in column 1. (__CONFIG)
Error[131]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 3 : Processor type is undefined
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 5 : Found label after column 1. (clrf)
Error[122]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 5 : Illegal opcode (porta)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 6 : Found label after column 1. (clrf)
Error[122]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 6 : Illegal opcode (portb)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 7 : Found label after column 1. (bsf)
Error[122]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 7 : Illegal opcode (status)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 8 : Found label after column 1. (movlw)
Error[122]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 8 : Illegal opcode (h)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 9 : Found label after column 1. (movwf)
Error[122]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 9 : Illegal opcode (trisb)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 10 : Found label after column 1. (clrf)
Error[122]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 10 : Illegal opcode (trisa)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 11 : Found label after column 1. (bcf)
Error[122]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 11 : Illegal opcode (status)
Warning[207] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 13 : Found label after column 1. (bsf)
Error[122]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 13 : Illegal opcode (portb)
Error[131]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 18 : Processor type is undefined

Tagli

İlk sütunda sadece etiketler olabilir. Her satırın başında en az bir boşluk bırakman gerekir. Tab kullanmanı tavsiye ederim, kodun daha okunaklı hale gelir böylece.

Bir dolu hata vermesinin sebebi ilk sütunu boş bırakmadığın için config ayarlarını yok sayması. Onu galiba etiket olarak görüyor.
Gökçe Tağlıoğlu

satilla

hocam herhangi bir değişiklik yok bu kodları siz derlemeyi denrmisiniz birde
LIST P=16F84

          INCLUDE "P16F84.INC"


   __CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON &_WDT_OFF& _XT_OSC

     

     clrf porta
     clrf portb
     bsf status,5
     movlw h'FF'
     movwf trisb
     clrf trisa
     bcf status,5
 
etiket :
     bsf portb,1



          END

satilla

bu arada zaten tab kullanıyorum ama burda boşlukalrı göstermiyor

ahmet2004

LIST P=16F84 
#include P16F84.INC 

	__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON &_WDT_OFF& _XT_OSC
	
     clrf porta 
     clrf portb 
     bsf status,5 
     movlw h'FF' 
     movwf trisb 
     clrf trisa 
     bcf status,5
etiket:
     bsf portb,1 

    END


P16F84.INC   dosyasını incelersen büyük harfli yazıldıklarını görürsün tanımlamaların.

Büyük harf değilde sendeki gibi küçük harfli yazılmışlarsa o zaman

Build Options ayarlarından olan MPASM Assembler sekmesinde Disable Case Sensitivity kutucuğunu işaretlemen gerekir.


P16F84.INC
       LIST
; P16F84.INC  Standard Header File, Version 2.00    Microchip Technology, Inc.
        NOLIST

; This header file defines configurations, registers, and other useful bits of
; information for the PIC16F84 microcontroller.  These names are taken to match 
; the data sheets as closely as possible.  

; Note that the processor must be selected before this file is 
; included.  The processor may be selected the following ways:

;       1. Command line switch:
;               C:\ MPASM MYFILE.ASM /PIC16F84
;       2. LIST directive in the source file
;               LIST   P=PIC16F84
;       3. Processor Type entry in the MPASM full-screen interface

;==========================================================================
;
;       Revision History
;
;==========================================================================

;Rev:   Date:    Reason:

;2.00   07/24/96 Renamed to reflect the name change to PIC16F84.
;1.01   05/17/96 Corrected BADRAM map
;1.00   10/31/95 Initial Release

;==========================================================================
;
;       Verify Processor
;
;==========================================================================

        IFNDEF __16F84
           MESSG "Processor-header file mismatch.  Verify selected processor."
        ENDIF

;==========================================================================
;
;       Register Definitions
;
;==========================================================================

W                            EQU     H'0000'
F                            EQU     H'0001'

;----- Register Files------------------------------------------------------

INDF                         EQU     H'0000'
TMR0                         EQU     H'0001'
PCL                          EQU     H'0002'
STATUS                       EQU     H'0003'
FSR                          EQU     H'0004'
PORTA                        EQU     H'0005'
PORTB                        EQU     H'0006'
EEDATA                       EQU     H'0008'
EEADR                        EQU     H'0009'
PCLATH                       EQU     H'000A'
INTCON                       EQU     H'000B'

OPTION_REG                   EQU     H'0081'
TRISA                        EQU     H'0085'
TRISB                        EQU     H'0086'
EECON1                       EQU     H'0088'
EECON2                       EQU     H'0089'

;----- STATUS Bits --------------------------------------------------------

IRP                          EQU     H'0007'
RP1                          EQU     H'0006'
RP0                          EQU     H'0005'
NOT_TO                       EQU     H'0004'
NOT_PD                       EQU     H'0003'
Z                            EQU     H'0002'
DC                           EQU     H'0001'
C                            EQU     H'0000'

;----- INTCON Bits --------------------------------------------------------

GIE                          EQU     H'0007'
EEIE                         EQU     H'0006'
T0IE                         EQU     H'0005'
INTE                         EQU     H'0004'
RBIE                         EQU     H'0003'
T0IF                         EQU     H'0002'
INTF                         EQU     H'0001'
RBIF                         EQU     H'0000'

;----- OPTION Bits --------------------------------------------------------

NOT_RBPU                     EQU     H'0007'
INTEDG                       EQU     H'0006'
T0CS                         EQU     H'0005'
T0SE                         EQU     H'0004'
PSA                          EQU     H'0003'
PS2                          EQU     H'0002'
PS1                          EQU     H'0001'
PS0                          EQU     H'0000'

;----- EECON1 Bits --------------------------------------------------------

EEIF                         EQU     H'0004'
WRERR                        EQU     H'0003'
WREN                         EQU     H'0002'
WR                           EQU     H'0001'
RD                           EQU     H'0000'

;==========================================================================
;
;       RAM Definition
;
;==========================================================================

        __MAXRAM H'CF'
        __BADRAM H'07', H'50'-H'7F', H'87'

;==========================================================================
;
;       Configuration Bits
;
;==========================================================================

_CP_ON                       EQU     H'000F'
_CP_OFF                      EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_PWRTE_OFF                   EQU     H'3FFF'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LP_OSC                      EQU     H'3FFC'
_XT_OSC                      EQU     H'3FFD'
_HS_OSC                      EQU     H'3FFE'
_RC_OSC                      EQU     H'3FFF'

        LIST



satilla

Error[113]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 6 : Symbol not previously defined (_XT_0SC)
Message[302] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 14 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 15 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Error[173]   C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\LED.ASM 24 : Source file path exceeds 62 characters (C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\MPASMWIN520\P16F84.INC)

ŞİMDİ BU HATA ÇIKIYOR 11 HATAYI 2 YE İNDİRMİŞ OLDUK :) DEDİĞİNİZ GİBİ BÜYÜK HARFLE YAZDIM BEN MPLAB KULLANMIYORUM NOT DEFTERİNDE YAZIYORUM

ahmet2004

Alıntı YapSource file path exceeds 62 characters

C de direkt bir klasör aç.

Örnek:  C:\deneme\deney.asm gibi...

Mplab maksimum 62karakterlik maksimum eski dosya yapısını kullandığından dolayı o hatayı veriyor.

satilla

hocam artık yazdıgım kodun içine attıyorum inc dosyasının tamamını öyle derliyorum bu arada mplabda yazdıgım programı nasıl derletetiyorum
ahmet hocam bir sorum daha olacak yazdıgım programı isiste simule ettğimde çalışıyor pic simulator ide de çalıştırdıgımda registerlarda high görünüyor ama programdaki led paneli açtıgımda ledler yanmıyor

yazdıgım kodlarda sorun yok değilmi ?

bigbey

mplab dizininde inc dosyalarının olduğu adresi belirtmeniz sorunu çözecektir.
;*******************************************************
		LIST		P=16F876A
		INCLUDE		"X:\MPLAB\P16F876A.INC"
;*******************************************************

Şeklinde sizin dosyanızın bulunduğu yeri yazmanız gerekli.
TA6R

Tagli

Normalde
#include <p16f876a.inc>
şeklinde yazmak yeterli oluyordu. Acaba arkadaşın adres de belirtmesini gerektiren durum ne olabilir? Yani bizimkiyle onunki arasında ne fark var?

Bu arada sinansinan09, Pic Simulator IDE'den bahsetmişsin. Acaba programını bu Pic Simulator IDE'nin editöründe mi yazıyorsun? Eğer durum böyle ise başlangıçtaki o satırları yazmana gerek yok, daha doğrusu include, config vs. yazmadan doğrudan programa başlaman gerekiyor. İlgili ayarlar programın arayüzü ile seçiliyor ve koda sonradan otomatik ekleniyor.
Gökçe Tağlıoğlu

eLectronbLue

Sigorta ayarları ve Device seçim menüsü var ise oradan önce kullandığın mikroişlemciyi ve daha sonra sigorta ayarlarını belirtip bir daha dene.

satilla

sigorta yaraları derken hocam konfigurasyon bitleirndemi bahsediyorsunuz?pic in modelini vs ayarladım bu arada
programı pic simulator ide de yazmıyorum not defterinde yazıyorum
simulator idede denedim şimdi yazdıgım her satır için hata verdi :)
daha ii bir durum var kodlar arkadasımın bilgisayarında isiste çalışmıyor acaba msnde uzaktan yardımla sorunu çözebilecek kimse varmı ?
şimdiye kadar msnden yardım istemeidm çünkü başkalarınada ilerde yardımcı olabilcek bir konu başlıgı oalbilir...sorunu çözdükten sonra burada paylaşabiliriz