Errores al compilar en MPLAB X

Hola:

No se que pasa pero desde que empecé a compilar cualquier .asm me da el mismo error y nunca compila.

Desinstalé el MPLAB y lo volví a instalar, reinicio y sigue igual. ¿Qué le pasa ahora el MPLAB que cuanto más me hace es cuando más me da problemas?

Debug build of project `C:\PIC16F84\ejem_1_2.disposable_mcp' started.
Preprocessor symbol `__DEBUG' is defined.
Wed Sep 03 19:39:53 2008
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84A "ejem_1_2.asm" /l"ejem_1_2.lst" /e"ejem_1_2.err" /d__DEBUG=1
Could not spawn language tool. Check command-line options. (5)
A language-plugin exception occurred and was logged.
----------------------------------------------------------------------
Debug build of project `C:\PIC16F84\ejem_1_2.disposable_mcp' failed.
Preprocessor symbol `__DEBUG' is defined.
Wed Sep 03 19:39:53 2008
----------------------------------------------------------------------
BUILD FAILED

El programa que estoy haciendo es este:

Código:
;Tres valores están almacenados en la memoria, A, B y C. Y en las
;direcciones 10, 11 y 12h. Resolver ecuación (A + B) - C.
;Velocidad d ereloj; 4MHz
	LIST	p=16F84A		;Tipo de procesador.
	INCLUDE	<P16F84A.INC>	;Definiciones de registros internos.
__CONFIG	_CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
;*****************************************************************
	DATO_A		EQU 0x10	;Define la posición del dato A
	DATO_B		EQU 0x11	;Define la posición del dato B
	DATO_C		EQU 0x12	;Define la posición del dato C
	RESULTADO 	EQU 0x13	;Define la posición del dato RESULTADO
;*****************************************************************
	ORG 0x00	;Vector de reset
	goto INICIO
	ORG 0x05	;Salva el vector de interrupción
INICIO:
	movlw .1
	movwf DATO_A
	movlw .9
	movwf DATO_B
	movlw 0Ah
	movwf DATO_C
;
	movf	DATO_A,W	;Carga el 1er sumando
	addwf	DATO_B,W	;Suma 2º operando
	movwf	RESULTADO	;Almacena resultado parcial
	movf	DATO_C,W	;Carga el sustraendo
	subwf	RESULTADO,F	;Resta el minuendo y almacena
STOP
	goto $
	END		;Fin del programa

Saludos.[/code]
 
segun leo en microchip, la V8.14 no es una version final. Yo intentaria con una version anterior



edit. Tu programa se compila OK
 
Meta dijo:
Hola:

Debug build of project `C:\PIC16F84\ejem_1_2.disposable_mcp' started.
Preprocessor symbol `__DEBUG' is defined.

Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84A "ejem_1_2.asm" /l"ejem_1_2.lst" /e"ejem_1_2.err" /d__DEBUG=1

Could not spawn language tool. Check command-line options. (5)
A language-plugin exception occurred and was logged.
...
Debug build of project `C:\PIC16F84\ejem_1_2.disposable_mcp' failed.
Preprocessor symbol `__DEBUG' is defined.
...


Hola:

Está claro que el programa ese no te puede generar ningún problema.

Se me ocurren dos posibles salidas:

Primero podrías fijarte si está bien configurado el paquete de lenguaje de compilacion.
En la figura 1 te muestro el acceso (del MPLAB 8.10), en la figura 2 la ventana que se abre, señalando en azul la opción que deberías elegir para compilar en ASSEMBLER con el 16F84A.

Lo segundo es probar si instalando una versión anterior te pasa lo mismo.

Saludos.

NOTA: Google traduce "spawn" como "desovar" (?)
 

Adjuntos

  • ventanamplab1_581.jpg
    ventanamplab1_581.jpg
    46.3 KB · Visitas: 928
  • ventanamplab2_511.jpg
    ventanamplab2_511.jpg
    44.1 KB · Visitas: 955
Gracias, lo voy a probar pero en ASM. Luego aviso, voy a quitar el 8.14 he instalo el 8.10 por si acaso.

EDIT:
Gracias. Instalé el MPLAB 8.10.

Si el 8.14 es más nuevo. ¿Por qué instalar el anterior?
 
Hice lo que me dijiste y no funcionaba sobre configurarlo. Desinstalé todo y volví a instalar el MPLAB 8.10 y me funcionó.

Lo que quiero saber es, ¿por qué no se aconseja el 8.14? No tenía problemas y de repente surgió.
 
Tengo un problemilla con el driver lcd del ccs ,quiero compilar un programita para el lcd (016en el proteus) y al compilar me sale identificador indefinido set_tris_lcd medoy cuenta que puede ser , porque el driver no lo he tocado para nada .
tarror sea algo trivial pero no medoy cuenta ya que no domino mucho el "c".
desde ya si alguien me aclara lo agradecere.
saludos a todos
 
mrkcc dijo:
si se pudo tenia razon de que la direccion era muy grande lo puse en c:microchip-1 y ahi se compilo en hex, asi pasa siempre en windoes, gracias por su ayuda, ya que me sirvio de mucho, y por los programas

A veces la solucion esta delante de nuestros ojos...solo es cuestion de detenerse a observar con detenimiento.

Saludos.

Ric.
 
El nombre dijo:
Guarda tus archivos en uan carpeta mas cercana al directorio raiz. Te está indicando que escedes los caracteres máximos. Seguramente lo guardas en "mis documentos" y el camino hasta llegar ahi es muy largo. create una carpeta en el directorio raiz y verás como se soluciona el problema

A mandar

gracias era esto la solucion ya que tenia muy grande el nombre mejor cree una carpeta en c:\ y todo se resolvio, muchas gracias.
 
me da este error, y lo extraño esque me lo da en una instruccion tan sencilla como el GOTO, qe el programa se "muere", no tira mas y me sale este error o aviso mas bien

Halted due to PC incrementing over the Maximum PC address and wrapping back to Zero

¿Alguien sabe que puede significar?¿O porque me sale esto?
Y lo mas importante, ¿Como solucionarlo? Es vital
 
la traducion de google es: Detenido debido a la creciente PC Maximum PC durante el envasado y la dirección de vuelta a cero.

A mi nunca me ha dado ese error. Mira a ver si has superado el limite de memoria de ese micro.
 
Debe ser porque estas saltando a una dirección de memoria que no existe (que excede la dirección más alta de la memoria flash del pic). GOTO carga el registro PC (program counter), por eso salta en esa instrucción.
Chequeá ese salto y si sigue el problema incluí el código fuente para poder ver mejor cual es el problema
 
soy pesimo en la realizacion de programas asi que espero que nadie se ria jaja

Código:
			LIST	P=16F876

Estado		EQU		03
Puerto_A	EQU		05
Puerto_B	EQU		06
TMR1		EQU		0A
SEG			EQU		32
MIN			EQU		33
HOR			EQU		34

			ORG		00
			GOTO	INICIO
			ORG		05

INICIO
			BSF		Estado,5
			MOVLW	0xFF
			MOVWF	Puerto_A	
			CLRF	Puerto_B	
			MOVLW	0x09		
			MOVWF	TMR1
			BCF		Estado,5

COMIENZO						
			CLRF	SEG
			CLRF	MIN
			CLRF	HOR

SEGUNDOS		
			INCFSZ	SEG,1		
			MOVLW	0x3B		
			SUBWF	SEG,1		
			BTFSC	SEG,0		
			GOTO	SEGUNDOS	
		
MINUTOS
			INCFSZ	MIN,1		
			MOVLW	0x3B		
			SUBWF	MIN,0		
			BTFSS	MIN,2		
			GOTO	SEGUNDOS	

HORAS
			INCFSZ	HOR,1		
			MOVLW	0x18		
			SUBWF	HOR,0		
			BTFSS	HOR,2		
			GOTO	SE	

			GOTO	COMIENZO	



			END

El objetivo del programa es la configuracion del TMR1 del pic16F876 para que cuente horas minutos y segundos, se que queda mucho codigo, es el comiezo aun :(

no se rian
 
Asi por encima he comprobado que en la tercera linea empezando por el final tienes puesto "GOTO SE" y el "SE" no se encuentra en ninguna parte, asi que cuando llega esa instruccion no puede ejecutarse porque la direccion "SE" no se encuentra. Naturalmente el Mplab se da cuenta de este fallo.
 
SEGUNDOS
INCFSZ SEG,1
MOVLW 0x3B
SUBWF SEG,1
BTFSC SEG,0
GOTO SEGUNDOS

En ese GOTO, ya se me cuelga el programa, gracias por avisar del fallo pero no llegar a esa tarea...
 
en verdad, necesito vuestra ayuda
no pido qe me hagais el codigo
solo que me digais...¿Como puedo hacerlo...que pasos he de seguir?ESque anda bastante perdido
 
Creo que la cosa viene por este lado.
Declaraste TMR1 en la ubicación 0A, que en realidad corresponde a PCLATH, que se utiliza para obtener la dirección final del contador de programa (PCLATH + PC)
Entonces al poner:

MOVLW 0x09
MOVWF TMR1

estas en realidad cargando PCLATH con el valor 0x09, lo que altera el contador de programa y se ve recién al GOTO SEGUNDOS porque en esa instrucción se toman bits de PCLATH. En otras palabras, estarías haciendo un cambio de página.

Recomendación: usa arriba de todo
#include <p16f876.inc>
y te olvidas de definir direcciones de registros de propósito específico (SFR) a mano. Sí vas a tener que seguir definiendo los de propósito general, que son tus variables de usuario (GPR's): en tu caso, SEG, MIN, HOR.

Saludos
 
Hola a todos,esta tarde haciendo un programa en el m-plab no me genera el codigo asembler,siempre me ha funcionado bien pero no se que le puede pasar,os dejo el mensaje que me sale para que veais ................muchas gracias,saludos.

Deleting intermediary files... done.
Executing: "C:\Archivos de programa\MPLAB IDE\MCHIP_Tools\mpasmwin.exe" /q /p16F84A "1.3.asm" /l"1.3.lst" /e"1.3.err"
Message[301] C:\ARCHIVOS DE PROGRAMA\MPLAB IDE\MCHIP_TOOLS\P16F84.INC 37 : MESSAGE: (Processor-header file mismatch. Verify selected processor.)
BUILD FAILED: Thu Feb 26 19:35:24 2009
 
Atrás
Arriba