Autor Tema: Duda MPLAB  (Leído 2994 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado standard

  • PIC10
  • *
  • Mensajes: 18
Duda MPLAB
« en: 20 de Febrero de 2007, 12:35:14 »
 Saludos

 Para realizar mi primer proyecto había pensado en el PIC16f87x, que ha sido del que he encontrado más información, pero seleccionándolo en el MPLAB, aparece en rojo la opción compiler. ¿Necesito otro programa para ensamblar el código?
Gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Duda MPLAB
« Respuesta #1 en: 20 de Febrero de 2007, 13:16:25 »
Saludos

 Para realizar mi primer proyecto había pensado en el PIC16f87x, que ha sido del que he encontrado más información, pero seleccionándolo en el MPLAB, aparece en rojo la opción compiler. ¿Necesito otro programa para ensamblar el código?
Gracias

Si has instalado bien el MPLAB, debieras haber también instalado el MPASM que te permitirá ensamblar el código.

Qué versión usas? Qué mensaje exacto te aparece? Podrías capturar la pantalla y enviarla?
Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado standard

  • PIC10
  • *
  • Mensajes: 18
Re: Duda MPLAB
« Respuesta #2 en: 20 de Febrero de 2007, 16:02:20 »
La versión es la 7.50.

Si sigo el ejemplo del tutorial, con el  PIC18F8722, consigo ensamblarlo pero si utilizo el PIC16F877 aparece este error:

Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F877 "f877tmpo.asm" /l"f877tmpo.lst" /e"f877tmpo.err" /o"f877tmpo.o"

Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPLink.exe" "C:\Archivos de programa\Microchip\Proy\16f887.lkr" "C:\Archivos de programa\Microchip\Proy\f877tmpo.o" /o"ilumina.cof" /M"ilumina.map"

MPLINK 4.06, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section 'INT_VECTOR' can not fit the absolute section. Section 'INT_VECTOR' start=0x00000004, length=0x00000010
Errors    : 1

BUILD FAILED: Tue Feb 20 20:01:24 2007

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Duda MPLAB
« Respuesta #3 en: 20 de Febrero de 2007, 18:48:03 »
standard algunos comentarios

1) El uso del archivo de linkero .lkr en assembler, solo se usa cuando vas a escribir código en formato "relocatable".  Me parece extraño que uses esa forma de codificar si recién empiezas

2) El código de un 16F877 y un 18F8722 pueden llegar a ser muy diferentes ya que ambos poseen un core muy distinto.  Uno es de 14 bits (el 16F) y el otro de 16 bits (el 18F).

Podrías explayarte algo más y si es posible subir el código fuente, teniendo en cuenta de usar los marcos [ code ] y [ /code ]

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado standard

  • PIC10
  • *
  • Mensajes: 18
Re: Duda MPLAB
« Respuesta #4 en: 22 de Febrero de 2007, 12:16:19 »
Saludos

Mirando las directivas en http://www2.ate.uniovi.es/fernando/Doc2005/Documentacion/Directivas%20MPASM.pdf
y http://ww1.microchip.com/downloads/en/DeviceDoc/30400g.pdf  llego a la conclusión de que
Dato11    SET     0x20; Declarar una variable
Cons12    EQU    0x23; Declarar una constante

No tengo claro si EQU reserva una dirección de memoria o si cuando ensambla sustituye la etiqueta por el valor.
Si pongo ésto:
Cons      EQU    0x23

Dato11       SET    0x20
Dato12       SET    0x21
Dato13       SET    0x22
Dato14       SET    0x23

Cuando miro en memoria veo que las direciones 20,21 y 22 son las variables y en la 23 está la constante ¿por qué?
¿Por qué pone la constante en la posición 23 de memoria si 23 es su valor?
gracias

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Duda MPLAB
« Respuesta #5 en: 22 de Febrero de 2007, 12:48:19 »
Saludos

Mirando las directivas en http://www2.ate.uniovi.es/fernando/Doc2005/Documentacion/Directivas%20MPASM.pdf
y http://ww1.microchip.com/downloads/en/DeviceDoc/30400g.pdf  llego a la conclusión de que
Dato11    SET     0x20; Declarar una variable
Cons12    EQU    0x23; Declarar una constante

No tengo claro si EQU reserva una dirección de memoria o si cuando ensambla sustituye la etiqueta por el valor.

No reserva la dirección de memoria. Simplemente sustituye el nombre de la constante por el numero de posicion de memoria asignado a la mísma.

Si pongo ésto:
Cons      EQU    0x23

Dato11       SET    0x20
Dato12       SET    0x21
Dato13       SET    0x22
Dato14       SET    0x23

Cuando miro en memoria veo que las direciones 20,21 y 22 son las variables y en la 23 está la constante ¿por qué?
¿Por qué pone la constante en la posición 23 de memoria si 23 es su valor?
gracias

"The set directive is functionally equivalent to the equ directive except that set values may be subsequently altered by other set directives."

Practicamente no hay diferencia.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.