Autor Tema: Ayuda con Interrupcion  (Leído 1949 veces)

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

Desconectado Juampa_ar

  • PIC10
  • *
  • Mensajes: 25
Ayuda con Interrupcion
« en: 23 de Marzo de 2004, 11:21:00 »
Hola.. a todos .. tengo otro problemita ahora.. ya solucione.. lo de la clave del teclado ahora quiero hacerle otro detalle..  que supongo sera con una interrupcion.. y la verdad que hace poquito que estoy con picbasic asi que mucho no le entiendo la idea es la siguiente.. mi teclado serviria de llave para una alarma.. lo que yo quiero hacer es poner.. en el teclado.. la mayoria de las cosas posibles sin conectar demasiados cables con la cental de alarma.. por lo tanto es temporizar y hacer que haga beeps .. por un minuto el buzzer del teclado.. y obviamente que enviado el pulso de activacion . realice la misma temporizacion la central de alarma.. mi problema es el siguiente... cuando yo entro en la temporizacion... quisiera poder seguir leyendo el teclado matricial por si me arrepentiria de la activacion... y si apreto por ejemplo la tecla * del teclado se cancele la activacion ..supongo que tiene que ser con interrupciones..  pero no se como hacerlo por que cuando entra en la rutina de los beeps... no puedo hacer que lea el teclado y a la vez sigua.. con los beeps.. alguien me podria ayudar con esto ? ... desde ya muchas gracias a sisipic y a los integrantes de este foro .. la verdad que es lindo tener un Aula tan grande.. y con tan buenos compañeros.. cuando termine el proyecto lo voy a subir asi lo mejoramos entre todos.. un saludo.... y espero sus consejos

Desconectado LuisFrino

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 140
    • Electronica Microcontroladores Ilumunacion Decorativa
RE: Ayuda con Interrupcion
« Respuesta #1 en: 23 de Marzo de 2004, 19:33:00 »
juampa

los teclados que se ven en las alarmas modernas son de tres conductores un es mas el otro es alimentacion y el tercero es el cable de datos
esos teclados son inteligentes y tienen electronica nuy avanzada
y un protocolo de comunicacio inclusive se pueden poner varios en paralelo en diferentes lugares del inmueble a proteger
con la idea del teclado matricial lo cables a la central son muchos

si utilizas los matriciales  que se consiguen en las casaa de alarmas o electronica hay unos que traen electronica Cmos
con un encoder y decoder y un Flip Flop que cambia de estado
para el evento de activacion y desactivacion la unica contra es que son caros y obsoletos y facil de vulnerar ya que traen codigo maestro para la programacion del codigo de usuario

si utilizas el teclado solo de tres colunnas por cuatro
4+3 son 7 cables
si queres achicar el numero de cables hasta la central
vas a tener que meter un micro en el teclado y enviar los datos en comunicacion serie al micro principal de la alarma  


con respecto a que cuando lees el teclado no puedes hacer otra cosa es lo logico por mas interrupciones que utilices el micro no puede realizar dos tareas simultaneamente en el mismo tiempo

el tema es orientar bien el programa y que todo este sincronizado y que cada tarea tenga su oportunidad inaginate que le distes una instruccion Pause 500  mientras esta realizando la pausa
el micro no va a realizar otra tarea hasta que el tiempo de pause
haya terminado no se si me entendes lo que quiro ezplicarte
dejo abierto el tema para otras ideas
saludos a todos
Luis



Desconectado Juampa_ar

  • PIC10
  • *
  • Mensajes: 25
RE: Ayuda con Interrupcion
« Respuesta #2 en: 23 de Marzo de 2004, 21:50:00 »
Bueno Luis te entendi .. yo te cuento lo que estoy haciendo .. puse un 16f84a adentro de lo que seria mi tecladito de alarma.. utilizo un teclado de 4x3 de un telefono viejo es decir tengo el teclado de 4x3 el pic .. y los leds.. tanto de activacion como los de cambio de clave y ... los de las zonas.. que los de las zonas son los cables que voy a traer de la central... y voy a mandar.. el de "activacion" desde el teclado yo lo que tenia ganas de hacer.. y pensaba que se podia hacer.. por un ejemplo de un reloj .. que pusieron aqui en el foro.. es que se podia utilizar una interrupcion.. para que el teclado siguiera leyendo a pesar de que yo ejecute otra operacion .. es decir.. quiero poner la temporizacion en el teclado .. que haga los beeps.. hasta que me de el tiempo para salir.. y .. por si me arrepiento .. o hay alguna ventana abierta o algo y para evitar que se dispare la alarma tener una forma de detener esa rutina de temporizacion.. con el * del teclado.. pero para eso necesito leer las teclas.. pero cuando hago eso.. "espera" que aprete la tecla.. sino no vuelve.. y cosas asi.... y no me doy una idea que pueda hacer funcionar concretamente mi idea.. quiza este divagando  jajja que es lo mas normal.. pero supongo que se podra hacer igual gracias por tu ayuda y espero que alguien mas de alguna idea u opinion

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Ayuda con Interrupcion
« Respuesta #3 en: 24 de Marzo de 2004, 01:03:00 »
No se como tienes conectado el teclado , pero lo ideal es en portb.

Lo puedes hacer con pauses con menos tiempo , para no meterte con interrupciones de momento , así iras aprendiendo .

Codigo:

OPTION_REG.7 = 0             "resistencias portb conectadas
trisB = % 00001111  
portB = % 00001111
for minutos = 1 to 5          " tiempo de salida
  for segundos = 1 to 60
     for Ms200 = 1 to 5
       gosub ChequeaTeclado
       Sound BUZZER,[120,100] " beep 100 ms
       gosub ChequeaTeclado
       pause 100              " pausa 100 ms
     next Ms200
  next segundos
next minutos

ChequeaTeclado:
if portB <> %00001111 then gosub leeTecla  " yep ¡ se ha pulsado una tecla , cual es ???
if Tecla="*" then goto cancela
return



Lo mas importante si quieres aprender es que sepas el por que funciona ó no funciona tu codigo , cueste lo que cueste .

Esto es solo una posible manera de hacerlo y te haces una idea .
los tiempos son de ejemplo .
Suerte .



 

anything