TODOPIC

Microcontroladores PIC => - Niple - => Mensaje iniciado por: marculo22 en 25 de Mayo de 2010, 01:46:03

Título: 2 funciones con el mismo pulsador
Publicado por: marculo22 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.
Título: Re: 2 funciones con el mismo pulsador
Publicado por: Fer_TACA 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


Título: Re: 2 funciones con el mismo pulsador
Publicado por: Fer_TACA 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
Título: Re: 2 funciones con el mismo pulsador
Publicado por: Fer_TACA en 25 de Mayo de 2010, 14:14:10
Se me olvido adjuntar el fichero :oops: :oops:
Título: Re: 2 funciones con el mismo pulsador
Publicado por: marculo22 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
Título: Re: 2 funciones con el mismo pulsador
Publicado por: Fer_TACA 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

 
Título: Re: 2 funciones con el mismo pulsador
Publicado por: marculo22 en 27 de Mayo de 2010, 07:47:11
muchas gracias fermin
Título: Re: 2 funciones con el mismo pulsador
Publicado por: Fer_TACA en 27 de Mayo de 2010, 12:56:43
Ya nos contaras como te fue? :mrgreen:
Título: Re: 2 funciones con el mismo pulsador
Publicado por: willynovi 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,
Título: Re: 2 funciones con el mismo pulsador
Publicado por: marculo22 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.
Título: Re: 2 funciones con el mismo pulsador
Publicado por: willynovi 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.
Título: Re: 2 funciones con el mismo pulsador
Publicado por: marculo22 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
Título: Re: 2 funciones con el mismo pulsador
Publicado por: Fer_TACA en 09 de Junio de 2010, 18:12:37
Creo que en yo reparo.com estan progranado un curso de Niple :) :mrgreen:


fermin
Título: Re: 2 funciones con el mismo pulsador
Publicado por: Mati 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
 
Título: Re: 2 funciones con el mismo pulsador
Publicado por: Fer_TACA en 10 de Junio de 2010, 17:03:52
Hola Mati,

pero estos cursos no son de Niple
¿o si?

fermin
Título: Re: 2 funciones con el mismo pulsador
Publicado por: marculo22 en 10 de Junio de 2010, 18:58:27
me acabo de anotaR EN YOREPARO PERO DICE QUE ESTA CERRADO EL CURSO, VA A HABER OTRO PERO MAS ADELANTE, Y EL DE ROSARIO ME QUEDA UN POCO LEJOS, SOY BS AS CAPITAL, SEGUIMOS EN CONTACTO , SALUDOS