Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

18/01/2016 #1

Avatar de Daniel Meza

Incluir varios asm en proyecto de MPLAB V8.30
Saludos compañeros, recurro a ustedes nuevamente para solicitar su orientación en un embrollo que me acabo de hacer.

Verán, anteriormente, cuando realizaba proyectos en MCU's PIC16x solía hacerlos en asm y todo en un sólo archivo sin utilizar la opción de "Project Wizard" que incorpora el MPLAB pues usaba la función "quickbuild".

La estructura de mis programas era sencilla:

Código:
Encabezado (Definición de variables, palabra de configuración, definición de bits, etc.)
Cuerpo (Programa principal y subrutinas, ISR's)
Final (Datos alfanuméricos, datos de imágenes, códigos, constantes, demás...)
Ahora que tengo entre manos proyectos un poco más complejos le sigo tirando por asm pero quiero segmentar mis programas y estructurarlos en varios archivos para después invocarlos desde el "main" (por así llamarlo) y no tener un sólo archivo con miles de líneas

En el caso del IAR Workbench para los MSP430 y el AtmelStudio ya logré hacer esto y es muy cómodo tener el programa separado por procesos.

IAR.jpg

Para el caso del IAR solo basta con hacer un archivo nuevo; dentro de ese archivo pegar el código que quiero separar, rutinas matemáticas por decir algo y ya. Luego, en el "main"
pongo: #include<nombre_archivo.asm> y desde el "main" mismo puedo mandar a llamar funciones dentro del archivo nombre_archivo.asm

Intento hacer lo mismo en MPLAB pero me da el error de que no encuentra .END en cada uno de los archivos que pienso poner.

¿Cómo configuro MPLAB para hacer tal hazaña, o que directivas ando omitiendo?

Gracias
18/01/2016 #2
Moderador

Avatar de D@rkbytes

¿Estás colocando la inclusión de librerías al final del programa principal, y a continuación el "END"?

Algo así:
Código PHP:
Mensajes
    addwf    PCL
,F
Msj_Rst_Parcial
    DT 
"Reset Parcial."0x00
Msj_Rst_Total
    DT 
"Reset Total."0x00

    
INCLUDE   <EEPROM.INC
    INCLUDE   <
RETARDOS.INC>
    INCLUDE   <
BIN_BCD.INC>
    INCLUDE   <
LCD_4BIT.INC>
    INCLUDE   <
LCD_MENS.INC>
    
END 
También debes tener en cuenta la dirección de llamada a otras subrutinas para la inclusión de las librerías.
18/01/2016 #3

Avatar de Daniel Meza

Hacía eso mismo pero con la extensión .asm, por eso me daba el error. Ahora que leo tu comentario he hecho los cambios por .inc y anda sin problemas.

Muchas gracias d@rkbytes.

Pensaba por error que los .INC sólo contenían directivas de memoria, SFR's no código propiamente dicho.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.