• Domingo 22 de Diciembre de 2024, 07:04

Autor Tema:  Diferencia Entre Mpasm Y Mplab  (Leído 7839 veces)

Rasec_1984

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Diferencia Entre Mpasm Y Mplab
« en: Lunes 23 de Abril de 2007, 01:06 »
0
Hola chikos, como pueden ver por el titulo de esta discusion se darán cuenta que soy nuevo en esto. Comence hace un poco mas de un mes a programar pic en basic, pero ahora necesito manejar perifericos y esas cosas, y al parecer la mejor forma de hacerlo eficientemente es estudiar la arquitectura interna, y edemas aprender un poco de ASM. Estoy leyendo un libro muy bueno, llegue a la parte de programar en ASM, pero el autor lo hace con un ensamblador que en mi PC se pega. Habla tambien del MPASM y del MPLAB, y por lo que veo es el mas usado. Baje el MPLAB y no se como se usa :S , tampoco se cual es la diferencia entre ambos, pq segun se los dos sirven para escribir el codigo. Si alguien me pudiera aclarar cual es el rol de cada uno, y ademas indicarme donde hay un buen tutorial para usar el ensamblador (el que ustedes mas ocupen). O en caso de que fuera simple, me podrian decir donde escribir el codigo, y como generar el archivo .HEX..... se los agradeceria mucho :hola:  saludos

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Diferencia Entre Mpasm Y Mplab
« Respuesta #1 en: Lunes 23 de Abril de 2007, 06:29 »
0
Hola!
El MPasm es el compilador, y se usa cada vez que quieras convertir tu código a hexadecimal. En cuanto al MPLab, es todo un entorno de desarrollo que ofrece Microchip; alli puedes editar, simular, compilar, etc tu programa, y hasta cargarlo en el micro (necesitas el grabador adecuado) Al compilar, el entorno lo que hace es llamar al MPasm...
Puedes escribir tu programa con cualquier editor de text, por ejemplo con notepad, y luego compilarlo con el MPasm.
Para el compilador solo hay que saber que parámetros o modificadores hay que pasarle al compilar, en la página de Microchip encontraras un pequeño pdf con esta información, solo busca por el MPasm y lo encontrarás. Si compilas desde el MPLab, no debes preocuparte mucho por estos modificadores...
Allí también encontrarás algo de info sobre el MPLab, está todo en inglés.

Saludos

Rasec_1984

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Diferencia Entre Mpasm Y Mplab
« Respuesta #2 en: Martes 24 de Abril de 2007, 01:19 »
0
Hola!....muchas gracias por responder Huguen_aus_Tirol.

Lei tu mensaje, me queod claro cuale s la función de cada uno ;).
Encontre un ttorial de iniciación en español de MPLAB, donde aprendi a como escribir el codigo en MPLAB. El link es el siguiente: w3.todopic.com.ar/utiles/tutorial_mplab_6x.pdf, por si es que hat otro novatto como yo por ahi que no sabe como comenzar.

He escrito un codigo, es un ejemplo bien simple que encontre en el librito que denante mensione, es codigo es el siguiente:

LIST P = 16F84A
#include <p16F84A.inc>

OPERANDO1 EQU 0X0C
OPERANDO2 EQU 0X0D
RESULTADO EQU 0X0E

ORG   0x00

movlw 05
movwf OPERANDO1
movlw 02
movwf OPERANDO2
movf  OPERANDO1,0
addwf OPERANDO2,0
movwf RESULTADO

END

     El rpograma lo que hace es sumar operando1=5 con operando2 = 2. Operando uno debe quedar guardado en 0x0c, operando2 en 0x0d y el resultado en 0x0e.

 Ya he estudiado toda la arquitectura interna de este micro, y he estudiado por separado lo que hace cada instrucción, pero a la hora de hacer un programa no me resulta. Éscribi el codigo de arriba, y presione F10, y me arroja este error, y todos estos warning:

Make: The target "C:\Documents and Settings\César\Mis documentos\Cesar\Microcontroladores\Pic\mis proyectos\MPASM\primero1\primero1.o" is out of date.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84A "primero1.asm" /l"primero1.lst" /e"primero1.err"
Warning[205] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 1 : Found directive in column 1. (LIST)
Warning[205] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 8 : Found directive in column 1. (ORG)
Warning[203] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 10 : Found opcode in column 1. (movlw)
Warning[203] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 11 : Found opcode in column 1. (movwf)
Warning[203] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 12 : Found opcode in column 1. (movlw)
Warning[203] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 13 : Found opcode in column 1. (movwf)
Warning[203] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 14 : Found opcode in column 1. (movf)
Warning[203] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 15 : Found opcode in column 1. (addwf)
Warning[203] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 16 : Found opcode in column 1. (movwf)
Warning[205] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 18 : Found directive in column 1. (END)
Error[173]   C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 19 : Source file path exceeds 62 characters (C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM)
Halting build on first failure as requested.
BUILD FAILED: Mon Apr 23 19:11:03 2007


      Alguien me podria decir que he hecho mal????, por que la verdad no se. En el ejemlito del libro el codigo está sin el include, en un ejemplo que viene con el MPLAB está sin el list, pero con el include. Y en otro eje`mplo del mplab, está con ambos :S.

       Ya escogi el 16F84A en configure/selec device.

Espero me puedan hechar una manito, se los agradecería. saludos :kicking:

Alternative

  • Miembro MUY activo
  • ***
  • Mensajes: 176
    • Ver Perfil
Re: Diferencia Entre Mpasm Y Mplab
« Respuesta #3 en: Martes 24 de Abril de 2007, 03:19 »
0
Saludos Rasec_1984
con respecto a tu error que te sale

Error[173] C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM 19 : Source file path exceeds 62 characters (C:\DOCUMENTS AND SETTINGS\CéSAR\MIS DOCUMENTOS\CESAR\MICROCONTROLADORES\PIC\MIS PROYECTOS\MPASM\PRIMERO1\PRIMERO1.ASM)


Esto se deve a que donde esta tu programa que llamastes PRIMERO1.ASM la ruta en que se encuetra supera los 62 caracteres, es decir 62 letras, para que no te salga el error te recomiendo que crees una carpeta en C:\Programas\
y dentro de la carpeta realiza tus programas, en este caso el programa de PRIMERO1.ASM estara enrutada en C:\Programas\PRIMERO1.ASM

Espero que te haya quedado claro.

en cuanto a los warning
recuerda que deben quedar espaciados
es decir no deben quedar escritos hasta la izquierda, solo si son etiquetas
es decir, haciendo unas correcciones en tu programa te quedaria
de la siguente manera

             LIST P = 16F84A
            #include <p16F84A.inc>

OPERANDO1    EQU  0X0C
OPERANDO2    EQU  0X0D
RESULTADO    EQU 0X0E

                 ORG 0x00
                 goto  inicio
                 ORG 0x05

inicio      movlw 05
             movwf OPERANDO1
             movlw 02
             movwf OPERANDO2
             movf OPERANDO1,0
             addwf OPERANDO2,0
             movwf RESULTADO

             END


Como podras ver la etiqueta queda hasta el lado izquiero
y las instrucciones mas a la derecha
el ORG 5 es donde empiesa el inicio de programa
ya que en org 4 se utiliza para interrupciones del Timer
bueno, eso con el tiempo lo aprenderas
espero te haya servido

Si corres el programa y te quita los errores me abisas ok


checa mi pagina ahi hay como hacer programas
basicos te dejo la liga

http://espanol.geocities.com/why_impossible

Saludos bye

Rasec_1984

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Diferencia Entre Mpasm Y Mplab
« Respuesta #4 en: Sábado 28 de Abril de 2007, 22:09 »
0
Muchas gracias por responder Alternative.

   El error de la carpeta se me ocurrio lo que podia hacer, por lo que hice una ruta mas corta, y me funciono, tal como tu dices.
   Lo de los warning no tenia idea, pero hice lo que me dijiste, me meti a tu web y vi como se debian escribi para que no aparecieran, lo escribi asi:

         LIST P = 16F84A
         #include <p16F84A.inc>

OPERANDO1    EQU 0X0C
OPERANDO2    EQU 0X0D
RESULTADO    EQU 0X0E

         ORG 0

         movlw 05
         movwf OPERANDO1
         movlw 02
         movwf OPERANDO2
         movf  OPERANDO1,0
         addwf OPERANDO2,0
         movwf RESULTADO

         END



Mplab me lo ensamblo de maravillas, sin ningun error ni warning. Y aprendi a simularlo y todo, asi que muchas gracias por ayudarme en mi progreso. Saludos ;)...

Rasec_1984

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Diferencia Entre Mpasm Y Mplab
« Respuesta #5 en: Sábado 28 de Abril de 2007, 22:16 »
0
Ah, y lo de la direccion 0x04, ya habia leido que no pasa nada si uno la ocupa, ya que cuando no hay interrupciones no hace las veces de vector de interrupcion. Pero ahora lei que por lo general se ocupan interrupciones, asiq ue es mejor acostumbrarse a hacerlo como tu dices, sin ocupar la direccion 0x04. repito, muchas gracias, saludos ;)