ERROR [113] - No MPLAB, não sei oq faço!

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

ERROR [113] - No MPLAB, não sei oq faço!

Mensagempor uilter » 08 Out 2010 12:52

Olá pessoal..

Estou fazendo um projeto que usa o display T6963C que o pessoal aqui do forum ja vem me ajudado muito.

Só que estou começando a escrever o programa em assembly e me deparei com os seguinte erro

Estou usando o PIC16f877A

Debug build of project `D:\Desktop\mplab\teste.mcp' started.
Language tool versions: MPASMWIN.exe v5.36, mplink.exe v4.36, mplib.exe v4.36
Preprocessor symbol `__DEBUG' is defined.
Fri Oct 08 11:27:41 2010
----------------------------------------------------------------------
Make: The target "D:\Desktop\mplab\Untitled.o" is out of date.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F877A "Untitled.asm" /l"Untitled.lst" /e"Untitled.err" /d__DEBUG=1
Message[302] D:\DESKTOP\MPLAB\UNTITLED.ASM 74 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\DESKTOP\MPLAB\UNTITLED.ASM 76 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\DESKTOP\MPLAB\UNTITLED.ASM 78 : Register in operand not in bank 0. Ensure that bank bits are correct.
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 81 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 84 : Symbol not previously defined (ESCREVE_DADO)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 85 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 86 : Symbol not previously defined (ESCREVE_DADO)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 87 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 90 : Symbol not previously defined (ESCREVE_CMD)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 91 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 97 : Symbol not previously defined (ESCREVE_DADO)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 98 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 101 : Symbol not previously defined (ESCREVE_DADO)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 102 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 105 : Symbol not previously defined (ESCREVE_CMD)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 106 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 112 : Symbol not previously defined (ESCREVE_DADO)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 113 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 116 : Symbol not previously defined (ESCREVE_DADO)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 117 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 120 : Symbol not previously defined (ESCREVE_CMD)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 121 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 127 : Symbol not previously defined (ESCREVE_DADO)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 128 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 131 : Symbol not previously defined (ESCREVE_DADO)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 132 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 135 : Symbol not previously defined (ESCREVE_CMD)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 136 : Symbol not previously defined (STATUS_DISPLAY)
Error[113] D:\DESKTOP\MPLAB\UNTITLED.ASM 142 : Symbol not previously defined (ESCREVE_CMD)
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `D:\Desktop\mplab\teste.mcp' failed.
Language tool versions: MPASMWIN.exe v5.36, mplink.exe v4.36, mplib.exe v4.36
Preprocessor symbol `__DEBUG' is defined.
Fri Oct 08 11:27:42 2010
----------------------------------------------------------------------
BUILD FAILED



Não sei resolver esse ERROR 113

Estou chamando corretamente as funções que escrevem ou enviam dados ao display...



Segue abaixo o meu codigo.

Código: Selecionar todos
#INCLUDE <P16F877A.INC>

;*********************************************************
; Paginação de memória
#DEFINE    BANK0    BCF    STATUS,RP0    ; Banco 0
#DEFINE    BANK1    BSF    STATUS,RP0    ; Banco 1
;*********************************************************

;*********************************************************
;Flag's

W    EQU    0x00    ;
F    EQU    0x01    ;
;*********************************************************

;*********************************************************
; Variaveis

STATUS_GLCD    EQU    0X20    ; Status do display
DADO    EQU    0X21    ; Dado
COMANDO    EQU    0x22    ; Comando
;*********************************************************


;*********************************************************
;Entradas

PORTA    EQU    0X05    ;
PORTB    EQU    0X06    ;
PORTC    EQU    0X07    ;
PORTD    EQU    0X08    ;
PORTE    EQU    0X09    ;

TRISA    EQU    0X85    ;
TRISB    EQU    0X86    ;
TRISC    EQU    0X87    ;
TRISD    EQU    0X88    ;
TRISE    EQU    0X89    ;
;*********************************************************


;*********************************************************
;Saídas
#DEFINE    DB0    PORTD,0    ;Bit 0 do barramento do display
#DEFINE    DB1    PORTD,1    ;Bit 1 do barramento do display
#DEFINE    DB2    PORTD,2    ;Bit 2 do barramento do display
#DEFINE    DB3    PORTD,3    ;Bit 3 do barramento do display
#DEFINE    DB4    PORTD,4    ;Bit 4 do barramento do display
#DEFINE    DB5    PORTD,5    ;Bit 5 do barramento do display
#DEFINE    DB6    PORTD,6    ;Bit 6 do barramento do display
#DEFINE    DB7    PORTD,7    ;Bit 7 do barramento do display

#DEFINE    FS    PORTB,0    ; Seleciona o tamanho da fonte
#DEFINE    RW    PORTB,1    ; Escreve dados
#DEFINE    RDD    PORTB,2    ; Le dados
#DEFINE    CE    PORTB,3    ; Chip Enable
#DEFINE    CD    PORTB,4    ; Comando/Dado
#DEFINE    RST    PORTB,5    ; Reset do display
;*********************************************************

;*********************************************************
; Vetor de reset
    ORG    0x00    ;Endereço inicial de processamento
    GOTO    INICIO    ;Desvia para INICIO
    ORG    0X05    ;
;*********************************************************

;*********************************************************
; Configuração dos registradores

INICIO
    BANK1        ;
    MOVLW    B'00000001'    ;
    MOVWF    TRISA    ; Define RA0 e como Entrada e o resto como saída
    MOVLW    B'00000000'    ;
    MOVWF    TRISB    ; Porta B como saida
    MOVLW    B'11111111'    ;
    MOVWF    TRISD    ; Porta D como entrada
   
;Set ‘GRAPHICS HOME ADDRESS
    CALL    STATUS_DISPLAY    ; Verifica Status
    MOVLW    0X00    ;
    MOVWF    DADO    ;
    CALL    ESCREVE_DADO    ;
    CALL    STATUS_DISPLAY    ;
    CALL    ESCREVE_DADO    ;
    CALL    STATUS_DISPLAY    ;
    MOVLW    0X42    ;
    MOVWF    COMANDO    ;
    CALL    ESCREVE_CMD    ;
    CALL    STATUS_DISPLAY    ;

;Set ‘GRAPHICS AREA SET’
       
    MOVLW    0X1E    ;
    MOVWF    DADO    ;
    CALL    ESCREVE_DADO    ;
    CALL    STATUS_DISPLAY    ;
    MOVLW    0X00    ;
    MOVWF    DADO    ;
    CALL    ESCREVE_DADO    ;
    CALL    STATUS_DISPLAY    ;
    MOVLW    0X43    ;
    MOVWF    COMANDO    ;
    CALL    ESCREVE_CMD    ;
    CALL    STATUS_DISPLAY    ;

;Set ‘TEXT HOME ADDRESS’

    MOVLW    0X00    ;
    MOVWF    DADO    ;
    CALL    ESCREVE_DADO    ;
    CALL    STATUS_DISPLAY    ;
    MOVLW    0X08    ;
    MOVWF    DADO    ;
    CALL    ESCREVE_DADO    ;
    CALL    STATUS_DISPLAY    ;
    MOVLW    0X40    ;
    MOVWF    COMANDO    ;
    CALL    ESCREVE_CMD    ;
    CALL    STATUS_DISPLAY    ;

;Set ‘TEXT AREA SET’

    MOVLW    0X1E    ;
    MOVWF    DADO    ;
    CALL    ESCREVE_DADO    ;
    CALL    STATUS_DISPLAY    ;
    MOVLW    0X00    ;
    MOVWF    DADO    ;
    CALL    ESCREVE_DADO    ;
    CALL    STATUS_DISPLAY    ;
    MOVLW    0X41    ;
    MOVWF    COMANDO    ;
    CALL    ESCREVE_CMD    ;
    CALL    STATUS_DISPLAY    ;
   
;Set ‘DISPLAY MODE’

    MOVLW    0X9E    ;
    MOVWF    COMANDO    ;
    CALL    ESCREVE_CMD    ;
   
       
;*********************************************************


;*********************************************************
; Inicialização das variaveis
;*********************************************************

;=========================================================
LOOP
    GOTO    LOOP    ;
    END        ;
;=========================================================


;#########################################################
; Status do Display
STATUS_DISPLAY   
    BSF    CD    ;
    BCF    RDD    ;
    BCF    CE    ;
    NOP        ;
    MOVF    PORTD,W    ;
    MOVWF    STATUS_GLCD    ;
    BSF    CE    ;
    BTFSS    STATUS_GLCD,5    ; Se = 1, Display ok
    GOTO    STATUS_DISPLAY    ; Senão Volta e verifica novamente
    RETURN        ;
;#########################################################

;#########################################################
; Escreve Comando
ESCREVE_CMD
    MOVWF    PORTD    ;
    BSF    CD    ;
    BSF    RDD    ;
    BCF    WR    ;
    BSF    CE    ;
    NOP        ;
    BCF    CE    ;
    NOP        ;
    BSF    CE    ;
    RETURN        ;
;#########################################################

;#########################################################
ESCREVE_DADO    MOVWF    PORTD    ; PORTD = W
    BCF    CD    ;
    BSF    RDD    ;
    BCF    WR    ;
    BSF    CE    ;
    NOP        ;
    BCF    CE    ;
    NOP        ;
    BSF    CE    ;
    RETURN        ;
;#########################################################


Achei q poderia ser os TAB entre os comandos + n tem nada a ver.
O nome das funções que se deve chamar tem um Tamanho maximo ou caracter tipo "_" que não pode ser usado?


Obrigado a todos!
uilter
Nibble
 
Mensagens: 76
Registrado em: 05 Out 2010 15:56
Localização: São Paulo

Mensagempor Djalma Toledo Rodrigues » 08 Out 2010 13:31

Não retornou ao Bank0 ?

Verifique isso.

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor uilter » 08 Out 2010 13:45

Djalma Toledo Rodrigues escreveu:Não retornou ao Bank0 ?

Verifique isso.

DJ


Estava no BANK1
Voltei ao BANK0 e os erros continuam. Mto estranho.
uilter
Nibble
 
Mensagens: 76
Registrado em: 05 Out 2010 15:56
Localização: São Paulo

Mensagempor rafael.wachter » 08 Out 2010 14:03

Simples
Verifique a linha:

Código: Selecionar todos
LOOP
    GOTO    LOOP    ;
    END 


vc criou as rotinas STATUS_DISPLY, ESCREVE_DADO e ESCREVE_CMD após a linha "end"
O compilador vai chegar na linha onde se encontra o end e vai ignorar o resto.

Coloca o end na ultima linha sempre.
Testa ae q vai funfa :wink:
Any program which runs right is obsolete.
Avatar do usuário
rafael.wachter
Nibble
 
Mensagens: 89
Registrado em: 19 Nov 2008 13:12
Localização: no RS tchê

Mensagempor uilter » 08 Out 2010 14:17

rafael.wachter escreveu:Simples
Verifique a linha:

Código: Selecionar todos
LOOP
    GOTO    LOOP    ;
    END 


vc criou as rotinas STATUS_DISPLY, ESCREVE_DADO e ESCREVE_CMD após a linha "end"
O compilador vai chegar na linha onde se encontra o end e vai ignorar o resto.

Coloca o end na ultima linha sempre.
Testa ae q vai funfa :wink:



Puuuuts... funcionou!!!
Muito obrigado!!!

Eu sempre achei q o END era ali. Erro mto bobo só que nunca ia achar!
Obrigado amigo!!!
uilter
Nibble
 
Mensagens: 76
Registrado em: 05 Out 2010 15:56
Localização: São Paulo


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x