Autor Tema: 2 funciones con el mismo pulsador  (Leído 6094 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado marculo22

  • PIC10
  • *
  • Mensajes: 23
2 funciones con el mismo pulsador
« en: 25 de Mayo de 2010, 01:46:03 »
por favor, revisen esta imagen, lo hago intuitivamente ya que no tengo programador. el tiempo de 80 milisegundos es para los rebotes, y el de 2 segundos es para selecionar la salida del puerto b todas en estado 1, o si esta menor tiempo presionado el pulsador selecionara solo algunas salidas en estado 1 ,mi duda es estas salidas quedaran encendidas o al soltar el pulsador apagaran? se puede hacer esto mas sencillo? muchas gracias.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: 2 funciones con el mismo pulsador
« Respuesta #1 en: 25 de Mayo de 2010, 13:37:14 »
Hola,

Bajo mi punto de vista has puesto casi tres veces seguidas el ver el estado del puero RA0.
Lo que puedes hacer es:
-Comprobar le estado de RA0
-Esperar los 80msg que tienes
-Volver a probar el estado de RA0.
-Si es que es=1 ahora pongo el valor B=11111111 y si no es RA=1 entonces B=10101010.Tanto en un caso como en otro
-Espero los 2sg.
-Vuelvo al paso incial

Esto es un poco distinto a lo tuyo pues primero esperas los 2sg y despues sacas los valores al puerto B y como el micro es muy rapido (de hecho a no podras apreciar nada) en seguida estas volviendo al paso inicial.

Ahora estoy en el curro y si esta noche no lo has probado cuando tenga la llave del programa te adjunto como podria quedar lo que quieres.

Fermin


Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: 2 funciones con el mismo pulsador
« Respuesta #2 en: 25 de Mayo de 2010, 14:13:12 »
te adjunto, lo que creo que necesitas

perdona pero al exportar la imagen de escribir en el puerto B no sale el recuadro del bloque, pero lo importante es que veas la asignacion de pines y la estructura del programa.

Fermin
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: 2 funciones con el mismo pulsador
« Respuesta #3 en: 25 de Mayo de 2010, 14:14:10 »
Se me olvido adjuntar el fichero :oops: :oops:
Todos los días se aprende algo nuevo.

Desconectado marculo22

  • PIC10
  • *
  • Mensajes: 23
Re: 2 funciones con el mismo pulsador
« Respuesta #4 en: 26 de Mayo de 2010, 12:24:23 »
hola, te agradesco por tu respuesta, pero creo que no es a lo que me referia, lo que quiero hacer es que presionando un pulsador por 2 segundos ponga un uno a una salida  y si presiono el mismo pulsador pero antes de los 2 segundos encienda otra salida. y el tiempo de 80 milisegundos que le agregue es por los rebotes pero no se si es mucho o no.
lo que me adjuntaste creo que no funciona como digo,mira, luego de elegir una salida u otra  por medio del bit ra0:1 (ultimo)enciende por 2 segundos la salida elegida y retorna a ver el pulsador. pero si lo miras bien creo que nunca vas a poder elegir  la salida b: 10101010 ya que tendria 80 microsegundos para elegirla me explique  o te enloquesi,:? :? saludos

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: 2 funciones con el mismo pulsador
« Respuesta #5 en: 26 de Mayo de 2010, 17:03:33 »
Lo que hice fue pensando en lo que cre que querias. Por lo que dices, haber si lo entiendo ahora es lo siguiente:
Si mantengo pulsado durante >2sg entonces pongo todo =1 y si el tiempo de pulsado es menor de 2sg pones otro valor. es eso?

Si es asi, en principio lo que haria seria utilizar interrupciones de forma que desde el momento en que pasa la rutina antirebotes habilitas la interrupcion y si esta llega al tiempo de 2" entonces pones=1 y si se detecta que al soltar no ha llegado al final de la interrupcion pones el otro valor. Pero en ambos casos, despues de poner el valor tendras que realizar otra cosa o esperar un tiempo pues si no no te dara tiempo a ver nada o un alor no deseado si haces pruebas muy seguidas.
Por otra parte, como el tiempo es de 2" si utilizas la interrupcion del TMR1, este se desbordara a los 65536usg como maximo, asi que tendras que utilizar algun registro auxiliar para aumentar el tiempo.

Fermin

 
Todos los días se aprende algo nuevo.

Desconectado marculo22

  • PIC10
  • *
  • Mensajes: 23
Re: 2 funciones con el mismo pulsador
« Respuesta #6 en: 27 de Mayo de 2010, 07:47:11 »
muchas gracias fermin

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: 2 funciones con el mismo pulsador
« Respuesta #7 en: 27 de Mayo de 2010, 12:56:43 »
Ya nos contaras como te fue? :mrgreen:
Todos los días se aprende algo nuevo.

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: 2 funciones con el mismo pulsador
« Respuesta #8 en: 27 de Mayo de 2010, 15:32:17 »
no se bien que micro estas usando, ni que oscilador, en todo caso deberias ver la hoja de datos para ver que registros tiene asociados el TIMER que uses para las interrupciones. Algunos timer desbordan a 16bits y otros a 8bits, osea depende de eso cual uses, ademas deberias ver el PRESCALER para que los tiempos te cuadren en los 80ms y los 2 seg.
Cuando trabajas con delays, ya sea para evitar rebotes como dices o para los 2 seg, debes usar la interrupcion para evitar que el programa se quede "clavado" en esa instruccion de delay. Piensa que si por ejemplo tu micro tiene un tiempo de instruccion de 1useg, en 80ms el micro puede ejecutar 80000 instrucciones.

Si trabajas con interrupciones recuerda que esta ejecute lo menos posible, para retornar rapidamente al programa principal, para esto puedes usar algun registro como bandera "flag".

Por el tema del valor que presentas en el PORTB, hasta que no lo cambies el valor de alguno de los bits, este se mantendrá en esos valores.
Osea, puedes hacer un programa que sea de tres estados.
Estado 1: todos el PORTB en ceros, y que transcurridos por decir 5 segundos vuelva a esta posicion
Estado 2: habiendo presionado el pulsador y el tiempo que se mantuvo presionado supera los 2 seg, pones todo a 1
Estado 3: si has presionado el pulsador y el tiempo es menor a 2 seg, pones 10101010

Saludos,
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado marculo22

  • PIC10
  • *
  • Mensajes: 23
Re: 2 funciones con el mismo pulsador
« Respuesta #9 en: 31 de Mayo de 2010, 07:36:50 »
gracias por las respuestas, estoy utilizando un pic 16f84, la verdad que estoy comenzando y no tengo idea como utilizar un prescaler, solo se lo que es nada mas, estoy haciendo algunos proyectos de principiantes y ya me termine de leer el libro sobre niple tomo 1, me falta practicar mas y meter mas mano, no pense que el proyecto que se me ocurrio hacer fuera mas complicado de lo que pensaba, acabo de hacer uno sin interrupciones, en el transcurso del dia lo cargo asi lo evaluen, gracias.

Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: 2 funciones con el mismo pulsador
« Respuesta #10 en: 01 de Junio de 2010, 10:38:10 »
ok, yo no tengo mucho conocimiento de niple, pero en lo que sea que pueda ayudarte ahi estaré.
No se cuanto código de mas incorpora el niple, pero quizas como estas usando el 16F84 te convendria empezar con el Assembler, asi tomas conocimiento de cuales son los registros de trabajo, memoria, funciones basicas, ademas de que lograras un código mas eficiente con respecto al uso de memoria, que en el caso del 16F84 aveces resulta escaso.
Ojo es solo mi opinión, yo empece así, hasta el año pasado programaba solo sobre el 16F84 en Assembler, y ahora estoy usando la linea 18F programando en C y el salto me ha sido muy facil.
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado marculo22

  • PIC10
  • *
  • Mensajes: 23
Re: 2 funciones con el mismo pulsador
« Respuesta #11 en: 06 de Junio de 2010, 21:52:59 »
ok, te agradesco,la verdad que no me gustaria desviarme del tema principal del foro pero la verdad que no se donde poder ir a un curso realmente bueno de micro pic y asembler he probado y se me complico mucho, niple me ha resultado muy sensillo, se que tiene limitaciones pero para comenzar me conformo., te paso mi correo por si tenes algo de data sobre cursoo y demas. gracias. pido perdon por desviarme del tema principal. gracias-

marculo22@hotmail.com

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: 2 funciones con el mismo pulsador
« Respuesta #12 en: 09 de Junio de 2010, 18:12:37 »
Creo que en yo reparo.com estan progranado un curso de Niple :) :mrgreen:


fermin
Todos los días se aprende algo nuevo.

Desconectado Mati

  • PIC10
  • *
  • Mensajes: 13
Re: 2 funciones con el mismo pulsador
« Respuesta #13 en: 09 de Junio de 2010, 18:48:37 »
ok, te agradesco,la verdad que no me gustaria desviarme del tema principal del foro pero la verdad que no se donde poder ir a un curso realmente bueno de micro pic y asembler he probado y se me complico mucho, niple me ha resultado muy sensillo, se que tiene limitaciones pero para comenzar me conformo., te paso mi correo por si tenes algo de data sobre cursoo y demas. gracias. pido perdon por desviarme del tema principal. gracias-

marculo22@hotmail.com

Hola
mira por aca:
 http://www.todopic.com.ar/foros/index.php?topic=30851.0
 
Si estas cerca de Rosario (SF), ahora hay un  Regional Trainig Center oficial de Microchip, si tenes oportunidad pasa y mirá lo que esta gente hace, muy interesante.

Saludos
  Mati
 

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: 2 funciones con el mismo pulsador
« Respuesta #14 en: 10 de Junio de 2010, 17:03:52 »
Hola Mati,

pero estos cursos no son de Niple
¿o si?

fermin
Todos los días se aprende algo nuevo.


 

anything