TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: honeyzita en 05 de Enero de 2006, 13:00:00
-
Hola me estoy volviendo loca intentado programar una alarma que tiene un teclado matricial 3x4 que lo tengo hecho por interrupcion de los puertos rb4-rb7 (funciona conrrectamente), tambien tengo realizado una escritura de una clave en la eeprom y unas subrutinas que cuando detectan una tecla pulsada lo comparan con lo que hay en la eeprom y a la cuarta tecla pulsada te dice si es correcta o no la clave, todo va correctamente. El caso es que todo esto lo estoy simulando en el proteus y programandolo en ensamblador y ahora tengo que unir a esto que mientres se este ejecutando todo esto tambien me cuente un minuuto. Lo he intentado todo, hacerlo con TMRo con otra subrutina y llamarla desde el principal, tambien por medio de otra interrucion del TMR0 pero cuando pongo esta subrutina el teclado va super lento y no lee las teclas o a veces las lee mal, contar si cuenta bien .No se si es un problema de la temporizacion del proteus o en realidad no se donde insertar esta subrutina que me avise cuando alla consumido un minuto. A por cierto mi pic es un 16f876.
Gracias a todos por vuestra ayuda.
No os pongo el codigo porque es super largo.
-
Buenas!!!lo has probado en un pic de verdad o simplemente en PROTEUS?....cuando se realiza la cuenta de 1min y se llama a la interrupcion de timer, ¿que es lo que realiza esta? haber si a la llamada de la interrupcion del timer, se realizan varias operaciones de esperar un boton o similar y por eso el teclado no funciona correctamente.
Suerte y que te traigan muchitas cosas los Reyes Magos!!!
-
Hola!
como no se tu programa, una forma simple y que funciona, es empleando el preescaler en el tmr0, y este sin funcionar como interrupcion, es decir, lo dejas contar libremente... y lo comparas en una o varias partes de tu programa, si llega a un determinado valor, por ejemplo
TEMPORIZAR
CLRF STATUS
MOVLW .255
XORWF TMR0,0
BTFSS STATUS,Z
GOTO TIEMPO_FUNCION
CLRF TMR0
donde tiempo de funcion, lleva o incrementa contadores (en realidad decrementan) y al llegar a cero... es que transcurio en tu caso un minuto....
espero se entienda ok? 
Norberto
-
Hola gracias por la rapida contestacion, la verdad es que si solo lo he probado con el proteus y en realidad lo que tengo que hacer es que cuando el detector de presencia detecta algo (salida digital 1) pues empieza a contar el minuto y tambien a funcionar el teclado. Pero el caso es que todavia no he implementado lo del sensor porque estoy intentando que funcione el contador de un minuto y el teclado a la vez. Como tu dices Norberto he intentado contar poniendo el preescales a 255 y sin utilizar interrupcion lo que ocurre es que no se si es debido al proteus pero el teclado va escaneando realmente lento y en cuanto pulso la segunda tecla se queda pillado. Yo realizo una subrutina como esta:
cuento BTFSS INTCON,TOIF ;miro si ha contado
goto salgo ;no ha contado
decfsz seg ; si pues decremento contador
GOTO no_es ; que no es 0 salgo
incf seg ; que es cero inc el segundo contador
decfsz seg1
GOTO no_es
no_es CLRF TMR0 ;restauro el TMR0
bcf INTCON,TOIF ;Borra bandera
salgo
return
el caso es que en el main tengo esto
principal call teclado ; subrutina que hago para control de la interrupcion del
; teclado
call cuento
goto principal
¿creeis que me podria funcionar en el pic real y es cosa del proteus?
gracias a todos por vuestra colaboracion
-
Hola gracias a todos, ya he conseguido que me funcione...como tu habias dicho Norberto. Espero que tambien funcione en la realidad.
¿sabeis como de fiables es el proteus?
El problema es que tengo un T20 y un portatil y hasta que no me haga con ordenador de sobremesa no puedo probarlo.
Bueno gracias, en realidad ha sido un buen regalo de reyes que llevo toda la navidad liada con esto
Saludos desde sevilla
-
¿Estás en Sevilla?. Creí que estabas en Málaga.
Bueno, en ese caso, te informo que hemos quedado varios foristas este domingo a las 13:00 en la Taberna La Sonanta, en Plaza Chapina, 22. Vendrá gente de Sevilla y también de otras provincias.
Será un placer verte por allí.
-
Hola lo siento que me he enterado tarde del encuentro. La verdad es que antes estaba en Malaga estudiando y ahora que puedo hacer el proyecto por mi cuenta estoy en sevilla. Gracias de todos modos por la invitacion.
Un abrazo.