Autor Tema: como migrar un codigo del pic16f84a al pic16f628a  (Leído 3747 veces)

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

Desconectado d4y-all m2

  • PIC10
  • *
  • Mensajes: 3
como migrar un codigo del pic16f84a al pic16f628a
« en: 02 de Junio de 2011, 22:09:32 »
un saludo a todos...

soy nuevo en los pics, y me gustaria que me guiaran, pues en los cursos de pics que hay en la red traen ejemplos que difieren en su estructura y eso hace que me confunda, y no he comprendido muy bien el asm,
hace unos dias arme un POV, que funcionaba con un pic16f84a pero al no encontrarlo en mi ciudad tuve que usar un 16f628a,
he revisapo por internet como se puede adaptar un codigo asm de un pic16f84a al 16f628a, pero en la mayoria de la informacion que he visto dicen que solo hay que cambiar los registros, y asi lo hice, trate de reacer el codigo pero al simularlo en proteus no pasa nada. alensamblarlo con el mplab da un mensaje:

----------------------------------------------------------------------
Debug build of project `C:\Proyectos Pic\pov_pic16f628a.mcp' started.
Preprocessor symbol `__DEBUG' is defined.
Thu Jun 02 19:24:14 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F628A "pov_pic16f628a.asm" /l"pov_pic16f628a.lst" /e"pov_pic16f628a.err" /d__DEBUG=1
Warning[205] C:\PROYECTOS PIC\POV_PIC16F628A.ASM 5 : Found directive in column 1. (__CONFIG)
Warning[205] C:\PROYECTOS PIC\POV_PIC16F628A.ASM 7 : Found directive in column 1. (LIST)
Message[305] C:\PROYECTOS PIC\POV_PIC16F628A.ASM 102 : Using default destination of 1 (file).
Message[305] C:\PROYECTOS PIC\POV_PIC16F628A.ASM 104 : Using default destination of 1 (file).
Executing: "C:\Program Files\Microchip\MPASM Suite\mplink.exe" /p16F628A "pov_pic16f628a.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"pov_pic16f628a.cof" /M"pov_pic16f628a.map" /W /x
MPLINK 4.30.01, Linker
Copyright (c) 2009 Microchip Technology Inc.
Errors    : 0

Loaded C:\Proyectos Pic\pov_pic16f628a.cof.
----------------------------------------------------------------------
Debug build of project `C:\Proyectos Pic\pov_pic16f628a.mcp' succeeded.
Preprocessor symbol `__DEBUG' is defined.
Thu Jun 02 19:24:17 2011
----------------------------------------------------------------------
BUILD SUCCEEDED



No se si eso sea el problema, adjunto el codigo original con pic16f84a y el que yo trate de reconstruir, aver si alguien me guia en donde esta la falla, o si de plano no entendi el procedimiento para daptar el codigo (disculpen si no me doy a entender).



Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: como migrar un codigo del pic16f84a al pic16f628a
« Respuesta #1 en: 02 de Junio de 2011, 22:54:19 »
  Hola, te sugiero que coloques el código en el cuerpo mismo del mensaje, es lo podés hacer usando la opción indicada como GeSHi (que se encuentra a la izquierda de la opción para cambiar de color). De esa forma será más rápido ver el programa.
 
  Al usar un 16F628A debes tener en cuenta que éste tiene comparadores y que por defecto (luego de PowerOnReset) los pines A0 A1 A2 y A3 quedan configurados como entradas analógicas. Así que si tu programa hace uso de dichos pines, debes explícitamente apagar los comparadores (poner el valor 7 en el registro CMCON).

  Otra cosa a tener en cuentas es que el pin MCLR, es configurable, es decir, que dicho pin puede funcionar como MCLR o como A5, por lo tanto también hay que tener en cuenta ello al momento de la configuración.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: como migrar un codigo del pic16f84a al pic16f628a
« Respuesta #2 en: 02 de Junio de 2011, 23:31:44 »
Hola.

Migraste mal la primera parte. Hay un par de errores:

Código: ASM
  1. ORG     0X00
  2.         GOTO    INICIO               ;este salto hace que no se inicialice nunca la dirección de los puertos...
  3.  
  4.         bsf     STATUS,RP0              
  5.         clrf    PORTB                        ;no recomendado. si bien el opcode generado es idéntico por las limitaciones de direccionar sólo 7 bits de memoria, deberias utilizar TRISB.
  6.         clrf    PORTA                        ;lo mismo que el anterior, pero con TRISA
  7.         bsf     STATUS,RP0                ;MAL. deberia limpiar el bit para retornar al banco 0.

Corregido:

Código: ASM
  1. ORG     0X00
  2.         bsf     STATUS,RP0              
  3.         clrf    TRISB                        ;no recomendado. si bien el opcode generado es idéntico por las limitaciones de direccionar sólo 7 bits de memoria, deberias utilizar TRISB.
  4.         clrf    TRISA                        ;lo mismo que el anterior, pero con TRISA
  5.         bcf     STATUS,RP0                ;MAL. deberia limpiar el bit para retornar al banco 0.

No pensaste en hacer una tabla para este programa? Quedaría mucho más corto y organizado :)

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.


 

anything