TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: arlex en 06 de Marzo de 2007, 18:20:05
-
hola amigos tengo un problema con un programa que estoy realizando y es el siguiente: estoy realizando un programa que permita vizualizar en display el numero de la tecla presionada en el teclado matricial; ya realice el programa pero quiero crear una libreria del manejo y no se como hacerlo; por ejemplo:
list P=16fxx
#include p16fxx.inc
#teclado.inc
org 0x00
goto programaprincipal.....
espero haberme explicado. entonces desde el programa principal llamo las subrutinaas que estan en la libreria teclado.inc
-
Quetal... cuando realizo programas grandes los divido en varios archivos y los incluyo de la siguiente forma (al final del programa principal..) espero te sirva
list P=16fxx
#include <p16fxx.inc>
org 0x00
goto programaprincipal.....
programaprincipal...
....
....
#include <teclado.asm>
#include <lcd.asm>
end
Saludos
-
Hola.
Las librerias pueden estar construidas con dos formas de aplicación distinta, la primera, y más habitual, para incluir subrutinas, la segunda para incluir "trozos" de codigo, la diferencia de tratamiento es diferente en ambos casos.
El #include <p16fxx.inc> es un ejemplo claro de inserción de "trozos" y exige que el include se situe en el punto exacto del programa en que queremos que actue
El include <teclado.asm> (no pasaría nada si llevase extesión .inc), por ejemplo suena más a subrutina, en cuyo caso su ubicación optima es como la propuesta por Astaroth_25 junto con las demás subrutinas y despues del programa principal.
Las precauciones a tener en cuenta en todos los casos son:
- Es necesario efectuar la asignación de ficheros que se usen en las librerias, los que no estén ya definidos o incluidos en, por ejemplo, la <p16fxx.inc>.
- Las librerias que se usen como subrutina terminan con una instrución de retorno (return por ejemplo).
- Ninguna libreria incluye la directiva END (a veces cuando un programita que nos interesa lo convertimos en libreria es posible que se nos olvide eliminar el END).
- Recordar que la directiva #include no admite etiqueta en su misma línea (a tener en cuenta especialmente para subrutinas).
- Recordar que hay ensambladores que exigen que las librerias estén en la misma carpeta que el programa principal o en su defecto que se defina la ruta para su localización.
Personalmente uso la extensión .inc para todas las librerias y en ellas incluyo en su encabezamiento unas tres líneas de comentarios, la primera con el nombre, indicacion si está como subrutina o como trozo insertable, la segunda una brevisima descripción de características, limitaciones y/o funcionamiento (a modo de recordatorio), y la tercera un listado de todos los registros que se utilizan en dicha subrutina (exeptuando tanto a la ya clásica <p16fxx.inc> como a sus ficheros)
Ya nos contaras tus experiencias
Saludos
-
si la libreria se encuentra en la ruta establecida (PATH) por el ensamblador:
#include <p16fxx.inc>
si se encuentra en la misma carpeta donde está el programa principal (el programa que estas escribiendo):
#include "p16fxx.inc"
Salu2
Pedro