Activar dos salidas simultaneas en un pic
| #1 Activar dos salidas simultaneas en un pic |
| #2 |
|
Ehecatl
|
No me quedó claro lo que te sucede. ¿El error se presenta porque no puede detectar la pulsación de las dos teclas? o ¿se presenta porque no puedes activar las dos salidas al mismo tiempo?
Creo que en ambos casos es error de programación. ¿podrías poner algún segmento de tu código para ver mas claramente el problema? |
|||||||||||
|
|
||||||||||||
| #3 |
|
eb7azn
|
GRacias por tu respuesta Ehecalt, si efectivamente debe ser error de programación ada mi poca experiencia.
Las entradas del PIC las pongo a cero con los pulsadores pero, parece que el programa se queda en esa línea hasta que suelto la tecla. Te copio la parte correspondiente del código: ' condicion de los pulsadores para grabar los valores max y min vt0 = Not RA2 ' pulsador derecha vt1 = Not RC4 ' pulsador izquierda vt2 = Not RA4 ' pulsador arriba vt4 = Not RA5 ' pulsador abajo vt5 = Not RC5 ' pulsador para memorizar posiciones vt6 = vt0 And vt5 vt7 = vt1 And vt5 vt8 = vt2 And vt5 vt9 = vt4 And vt5 If vt5 Then If vt0 Then RC0 = 1 Else RC0 = 0 ' salida rele derecha If vt1 Then RC1 = 1 Else RC1 = 0 ' salida rele izquierda If vt2 Then RC2 = 1 Else RC2 = 0 ' salida rele salida rele arriba If vt4 Then RC3 = 1 Else RC3 = 0 ' salida rele abajo Endif Si quieres dar u n vistazo puedo envierte el código completo, no es muy grande. Gracias por anticipado |
|||||||||||
|
|
||||||||||||
| #4 |
|
EinSoldiatGott
Colaborador
|
Bueno yo lo hago en ensamblador, pero sería así el problema es que seguramente le estas diciendo que te cheque cada entrada por separado, entonces ejecuta la primera revisión y como la encuentra verdadera, se brinca la siguiente, luego regresa vuelve a checar y pasa lo mismo por eso nunca hace la segunda. Lo que puede hacer es decirle que mueva lo del puerto de entrad a una registro y que lo compare por ejemplo si hay un 00000011 quiere decir que presionó los 2 pulsadores entonces que haga tal cosa. Si hay un 00000001 solo presionó uno, entonces que haga tal cosa. Saludos |
|||||||||||||
|
|
||||||||||||||
| #5 |
|
fdesergio
|
Yo haria lo siguiente trabajando con las INT de RB, al producirse la INT cargo el valor de los bits de mayor peso de RB en un registro y adopto la salida adecuada, nunca te podra recibir las 2 teclas pulsadas por programa normal porque el solo realiza una instruccion por ciclo de reloj o revisa una entrada o revisa otra entrada, las dos imposible, hazlo como te digo pues yo hice algo parecido y me funciono OK
|
|||||||||||
|
|
||||||||||||
| #6 |
|
eb7azn
|
Gracias por tu respuesta fdesergio, pero por desgracia tengo un gran problema y es que no se como hacerlo. Imagino que te refieres a trabajar con interrrupciones pero me viene grande ya que es la primera vez que me pongo delante de un micro
|
|||||||||||
|
|
||||||||||||
| #7 |
|
fdesergio
|
generalmente los PIC stienen interrupcion por RB desde el bit 4 hasta el 7, sin importar que este haciendo el PIC si hay un cambio de estado en cualquiera de las 4 entradas (obviamnete previo las configuramos como entradas) se detiene el programa principal y se devia una rutina de interrupcion, ahi es donde miras cuantos tienes activas de esas entradas y tomas la decision pertinente, si quieres dame mas datos del proyecto y te ayudo, ah el problema es que yo programo en ensamblador, pero bueno ahi le hacemos sino sabes de ensamblador aprendes,avisame, chauuuuuuuuuuuuu
|
|||||||||||
|
|
||||||||||||
| #8 |
|
FueraDeLugar
|
Me causa curiosidad... ¿Que pic estas usando?
De verdad que nunca he trabajado con lenguajes de alto nivel para PICs pero si ese lenguaje te permite leer un puerto completo, ¿por que no pruebas tomar el valor del puerto completo y analizarlo según su valor numerico?. Si dos entradas están activas, podrías evaluarlo de forma completa. |
|||||||||||
|
|
||||||||||||
| #9 |
|
EinSoldiatGott
Colaborador
|
Exactamente, eso es lo que le propuse arriba, en ensamblador es fácil, se mueve el dato actual en el puerto y se resta con otro, si la resta da 0 se hace tal cosa. Saludos |
|||||||||||||
|
|
||||||||||||||
|
| Temas de interés | |
|---|---|
| soft para eje X-Y-Z. para pc? | |
| Sensor optico para eje de motor | |
| Como manipular el eje Y en circuit maker | |
| Minitorno dremel con eje flexible | |
| Fuente DC de voltaje variable a 22Khz | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Site Map
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad

