TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: gustav03 en 11 de Enero de 2005, 09:05:00
-
a esta funcion se le pasa el valor te la tecla presionada en un teclado de 4x4
tabla_fun
;clrf PCLATH
addwf PCL ;agrega al cont. programa el valor de work
retlw 00h
retlw 00h
call uno ;1
retlw 00h
call dos ;2
retlw 00h
call tres ;3
retlw 00h
call cuatro ;4
retlw 00h
call f5 ;5
retlw 00h
call f6 ;6
retlw 00h
call f7 ;7
retlw 00h
call f8 ;6
retlw 00h
call f9 ;9
retlw 00h
call f10 ;10
retlw 00h
call f11 ;11
retlw 00h
call f12 ;12
retlw 00h
call f13 ;13
retlw 00h
call f14 ;14
retlw 00h
call f15 ;15
retlw 00h
call f16 ;16
retlw 00h
a alguien se le ocurre otra manera ?
-
hola, en realida a ese tipo de funcion no se le pasa el valor de la tecla presionada , sino un codigo numerico de tecla q en este caso conviene q sea de 0 a 15 o algo asi.
y lo q hace la rutina es asignar el verdadero valor de esa tecla, por ej # o * o una letra.
normalmente la tabla se construye solo con RETLW xx donde xx es el dato a retornar para ese valor de la matriz.
tienes q tener en cuenta en el addwf PCL para q micro lo haces, ya q saltara de a una word siempre y para la serie 18 esto son 2 bytes..
ademas los codigos de devolucion no pueden cruzar una pagina de memoria, sino tendras problemas y la rutina es bastante mas compleja.
espero te sirva y te diria q busques en microchip algun AN q maneje teclado y veras como se construye en forma completa
Suerte.
-
hola !Como estas ?
te cuento que a mi me anda este metodo u lo uso porque con el teclado controlo los parametros de doa motores y llamar a una funcion para que me ture un dato almasenado en el registro W no es practico es mejor llamar en cada parte de la tabla a una nueva funcion (si te da la pila claro !) y realizar unos calculos simples o actualizar los valores del puerto .Bueno la idea es esa pero como la call de la tabla esta en ina rutina de interrupcion no me siento comodo .Mi pregunta es: si hay otra forma de hacer esto ?
Gracias de todos modos y espero en el futuro poder ayudarte