Autor Tema: necesito ayuda con este pekeño proyecto  (Leído 13465 veces)

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

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: necesito ayuda con este pekeño proyecto
« Respuesta #30 en: 08 de Mayo de 2003, 12:39:00 »
Estoy pasándolo a Proteus y he notado lo que creo un fallo. Si te fijas el pulsador 1 esta mal conectado. Tienes tres pines tirados a masa. A no ser que sean unos pulsadores raros, estos tienen unidos internamente los pines dos a dos, es decir, que el pin 1 y 2 son el mismo, y lo mismo con el 3 y 4. Prueba en uno que no tengas conectado con un polímetro. Por tanto siempre estará a cero ese pulsador. Otra cosa es que no creo que puedas simular bien con pulsadores, o por lo que veo por encima no se si lo hará (ya que no he revisado el programa y no se como funciona o como lo hace). Verás el caso es que los pulsadores no se pulsan al instante, vamos que pulsas, luego otro... osea que es casi imposible que el codigo de 4 bits se reciba en el puerto completo y correcto (no se si me explico). Por eso puede que recibas codigos erroneos o indeseadosmientras pulsas todos los que sean.
En cuanto a RA4, yo me pase muuuucho tiempo hasta que lo hice funcionar, y la verdad es que ni siquiera me acuerdo si fue un sueño o lo hice de verdad. En mi caso es un pin perdido. Para que funcione pon lo que te han dicho, una resistencia de Pull-up.
Bueno sigo con lo del proteus...
Un saludo.
Saludos desde Huelva (ESPAÑA)

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: necesito ayuda con este pekeño proyecto
« Respuesta #31 en: 08 de Mayo de 2003, 12:50:00 »
Vamos a ver, el montaje es el que has hecho o te has equivocado de archivo. No te estoy vacilando eh, es yo cuando hago algo y modifico alguna cosa lo guardo con otro nombre (entrenador, entrenador1, entrenador2... p.ej). Es que los pulsadores tienen una resistencia de pull-up a masa cada uno y el otro lado va a masa también???. Osea que cuando no están pulsados hay un cero y cuando lo pulsas hay un cero ¿?.
Por que no dejas el esquemático que me estoy partiendo la vista siguiendo las pistas.
Aun así sigo con lo del proteus cambiando estas cosas.
Saludos desde Huelva (ESPAÑA)

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: necesito ayuda con este pekeño proyecto
« Respuesta #32 en: 08 de Mayo de 2003, 13:12:00 »
Cambios:
- Como veo que sólo van a ser 8 salidas pues te sobra un pin del puerto A.

- Y acostumbrate a comentar tus códigos. Para el que lo lea le es más fácil, pero para tí también. Un par de meses sin mirar el código y verás como no te acuerdas de nada y tendrás que volver a estudiar el código.
Sigo.

PD: me he tomado la libertad de cambiarlo sin preguntarte. De todos modos con lo que saque tu decides si te sirve o no.
Un saludo.
Saludos desde Huelva (ESPAÑA)

Desconectado jachy

  • PIC10
  • *
  • Mensajes: 26
RE: necesito ayuda con este pekeño proyecto
« Respuesta #33 en: 08 de Mayo de 2003, 13:34:00 »
ahhhhhhhhhhhhhhhhhhh
Estoy kedao ,esto funciona correctamente ,el problema lo tenia en el entrenador, el entrenador lo tenia antes al reves con entrada de 5v continuamente  atraves de unas resistencias y lo modifique para hacerlo al reves pues se me fue la pelota y meti una resistencia de 10k entre salida regulador y pulsadores (gran cagada por mi parte), ya k cuando se activaba el pulsador no estaba llegando los 5voltios sino 3,5 por la caida y al pulsar 2 a la vez ,caida total, a otra cosa el esquema k os mande no esta modificado del todo hay os dejo el Güeno y el ASM.

Por ahora esta listo me piro a hacer el Programa en visualBasic y a ver que new inconvenientes me salen ya hos contare y no muy tarde,

Gracias a todos por vuestra gran info, (esto es un foro lo demas es tonteria).

P.D.: En cuanto termine el prog. posteo por aka para contaros y si todo sale bien para postearle para k lo veais y si no para entretenernos otro poco ,

Saludos Jachy
20:30 8/5/03

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: necesito ayuda con este pekeño proyecto
« Respuesta #34 en: 08 de Mayo de 2003, 14:14:00 »
Te funciona todo correctamente, ¿verdad? El programa teóricamente lo ví bien. Solo añadir el GOTO final para que testeara de nuevo.

RA4 si actua como entrada no tiene porqué dar ningún problema, sin embargo si la programas como salida, actua como salida con colector (drenador) abierto y si no conectas a este pin (el colector) una resistencia que haga de carga y a VCC pués el LED que haya conectado a este pin no se encenderá (encontrar esto en su día me llevó de cabeza, no entendía porqué no se encendía el LED).

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: necesito ayuda con este pekeño proyecto
« Respuesta #35 en: 08 de Mayo de 2003, 18:05:00 »
Peeeerdón. Es cierto funciona.
Pero de verdad te funciona en el entrenador??
Sigo diciendo que el pulsador SW1 tiene unido los pines 2 y 4, y creo que esto lo cortocircuita. Mide en el pin 1 del conector "entradas". Si no me equivoco tendrás 5v tanto si pulsas el botón como si no.

Un saludo.
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: necesito ayuda con este pekeño proyecto
« Respuesta #36 en: 08 de Mayo de 2003, 23:44:00 »
Sí que lo sería.

Si en la entrada de PORTA tenemos 01010 que se active RB0 y al mismo tiempo un temporizador. Cuando ese temporizador haya finalizado la temporización que se desactive RB0. Así de sencillo.

Puedes hacer la temporización con y sin interrupción del TMR0.

Si el programa no es necesario que atienda a otras entradas cuando se esté realizando la temporización entonces puedes hacerlo sin interrupción.

Si el programa al mismo tiempo que temporiza ha de mirar el estado de otras entradas, y salirse de la temporización en el caso que alguna de estas se active, entonces con interrupción

Un saludo

Desconectado jachy

  • PIC10
  • *
  • Mensajes: 26
RE: necesito ayuda con este pekeño proyecto
« Respuesta #37 en: 09 de Mayo de 2003, 02:51:00 »
Yo habia pensado esto:


caso1     movfw      PORTA
              XORLW     0x01                   ;si Porta=00001
              BTFSS       STATUS,Z
              goto         caso4                  ;no,pasa caso4
              goto         caso2                  ;si,pasa caso2

caso2     movfw      PORTB
              XORLW     PORTB,0              ;Si PORTB=1
              BTFSS       STATUS,Z
              goto         caso3                   ;no,caso3
              BCF          PORTB,0               ;si,apagagaRb0


caso3     BSF           PORTB,0              ;enciende RB0

caso4     movfw      PORTA  
              XORLW     0x11                     ;si Porta=10001
              BTFSS       STATUS,Z
              goto         caso7
              goto         caso5

caso5     movfw      PORTB
              XORLW     PORTB,1
              BTFSS       STATUS,Z
              goto         caso6
              BCF          PORTB,0

caso6     BSF           PORTB,0

etc.etc.........


Estaria bien .....?????

Saludos Jachy  

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: necesito ayuda con este pekeño proyecto
« Respuesta #38 en: 09 de Mayo de 2003, 07:08:00 »
- El goto caso2 sobraría

- La instrucción XORLW requiere un Literal (un número) detrás y tú has puesto XORLW PORTB,0 (estaría mal)

- Si quieres hacer una XOR del acumulador con un registro es esta instrucción: XORWF f,d

- Según decías lo que quieres es que se active una salida, que esté un tiempo encendida y que luego se apague. Si es esto estúdiate el TMR0.

Un saludo

Desconectado jachy

  • PIC10
  • *
  • Mensajes: 26
RE: necesito ayuda con este pekeño proyecto
« Respuesta #39 en: 09 de Mayo de 2003, 10:43:00 »
no lo del tiempo me da lo mismo ,


La idea es que con la misma conbinacion binaria active y desactive. la salida RB .

ejm.

con 00001 actica
y si ya esta activado y se pulsa otra vez  00001 se desactive.


Saludos Jachy

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: necesito ayuda con este pekeño proyecto
« Respuesta #40 en: 09 de Mayo de 2003, 23:03:00 »
Hola Jachy.

Es muy importante detallar el exacto y correcto funcionamiento del automatismo (lo que se quiere conseguir).

Si lo que quieres es:

- Con 00001 (RA0=1) se activa RB0

- Una vez activado pueden pasar dos cosas: que se vuelva a pulsar RA0 debiendose desactivar RB0 o bien que se active cualquier otra entrada diferente de RA0 en cuyo caso debe de activarse la RB correspondiente con lo cual habrían dos salidas activas (RB0 y la otra)

- Las salidas activas se desactivaran al pulsar de nuevo sobre la RA correspondiente

Una posible solución sería esta:

La primera vez que actives RA0 por ejemplo, se debe activar RB0 y además una variable interna (un bit de una dirección de memoria) de forma que cuando quieras desactivar RB0 preguntarás si RA0=1 y si la variable interna es 1 en cuyo caso que se desactive RB0 y también la variable auxiliar interna (esta ya ha cumplido su cometido que era memorizar la primera pulsación de RA0)

- Deberás hacer actuar a los pulsadores por flanco de subida, ya que si mantienes mucho tiempo activa RA0 se producirían múltiples activaciones y desactivaciones de RB0

- Para hacerlos actuar por flanco de subida primero te preguntas si RA0=1 y luego si RA0=0 con lo cual solo se pasará a la próxima pregunta si se ha soltado el pulsador.

- Te recomiendo que hagas el diagrama de flujo del automatismo, ayuda a programar de una forma ordenada

Espero que se entienda la idea, la pantalla de un ordenador es muy fría para explicar cosas.

Un saludo

Desconectado jachy

  • PIC10
  • *
  • Mensajes: 26
RE: necesito ayuda con este pekeño proyecto
« Respuesta #41 en: 10 de Mayo de 2003, 16:10:00 »
Escrito originalmente por pocher


La primera vez que actives RA0 por ejemplo, se debe activar RB0 y además una variable interna (un bit de una dirección de memoria) de forma que cuando quieras desactivar RB0 preguntarás si RA0=1 y si la variable interna es 1 en cuyo caso que se desactive RB0 y también la variable auxiliar interna (esta ya ha cumplido su cometido que era memorizar la primera pulsación de RA0)

- Deberás hacer actuar a los pulsadores por flanco de subida, ya que si mantienes mucho tiempo activa RA0 se producirían múltiples activaciones y desactivaciones de RB0

- Para hacerlos actuar por flanco de subida primero te preguntas si RA0=1 y luego si RA0=0 con lo cual solo se pasará a la próxima pregunta si se ha soltado el pulsador.

- Te recomiendo que hagas el diagrama de flujo del automatismo, ayuda a programar de una forma ordenada

Espero que se entienda la idea, la pantalla de un ordenador es muy fría para explicar cosas.

Un saludo


Eso es esactamente lo k kiero hacer, el problema es que aprender uno solo ASM, como yo aqui solo pues me cuesta ,apesar de que ya he aprendido a hacer mis pinitos gracias a todos claro, no tendreis ejemplos y ejercicios  de todo esto para estudiarmelo , por que lo del flanco de subida te entiendo y comprendo lo que me quieres decir pero no se como interpretarlo en ASM.


Saludos jachy

Desconectado jachy

  • PIC10
  • *
  • Mensajes: 26
RE: necesito ayuda con este pekeño proyecto
« Respuesta #42 en: 11 de Mayo de 2003, 10:03:00 »
Bueno viendo el funcionamiento de programa he decidido dejar el asm como esta lo unico k he visto es la necesidad de un secuenciador manual que pase de RB0 a RB7 de uno en uno cuando a la entradade PORTA  sea = a 0x01
pero tengo un error en el ASM por k al montarlo en el entrenador no se mantiene quieto en la  ultima posicion de RBx donde anteriormente estaba,

list      p=16f84
   include      "p16f84.inc"
   org      0x00
   

INICIO   bsf   STATUS,RP0
   clrf   TRISB
   movlw   b"00001111"
   movwf   TRISA
   bcf   STATUS,RP0


caso1    movfw   PORTA
        XORLW   0x01                  
   BTFSS   STATUS,Z
        goto    caso1                                  

caso12  movfw   PORTA
        XORLW   0x01
   BTFSS   STATUS,Z
   GOTO   On1
   GOTO   caso12

On1   BSF   PORTB,0
   BCF   PORTB,7


;En caso1 si en la entrada tenemos0x01 pasa a caso12 y si caso12 ya no esta porta en 0x01 entonces pone a onRB0 y off RB7 (asi hasta k no suelte el pulsador no enciende RB0 Y APAGA RB7) Pero lo k no se hacer es que haga este ciclo hasta k se cumpla y cuando lo cumpla pase al siguiente y haga lo mismo k el caso anterior pero con la siguiente salida RB.


caso2    movfw   PORTA
        XORLW   0x01                  
   BTFSS   STATUS,Z
        goto    caso2                                  

caso22  movfw   PORTA
        XORLW     0x01
   BTFSS   STATUS,Z
   GOTO   On2
   GOTO   caso22

On2   BSF   PORTB,1
   BCF   PORTB,0

caso3    movfw   PORTA
        XORLW     0x01                  
   BTFSS   STATUS,Z
        goto    caso3                                  

caso32  movfw   PORTA
        XORLW    0x01
   BTFSS   STATUS,Z
   GOTO   On3
   GOTO   caso32

On3   BSF   PORTB,2
   BCF   PORTB,1

caso4    movfw   PORTA
        XORLW   0x01                  
   BTFSS   STATUS,Z
        goto    caso4                                  

caso42  movfw   PORTA
        XORLW   0x01
   BTFSS   STATUS,Z
   GOTO   On4
   GOTO   caso42

On4   BSF   PORTB,3
   BCF   PORTB,2

caso5    movfw   PORTA
        XORLW   0x01                  
   BTFSS   STATUS,Z
        goto    caso5                                  

caso52  movfw   PORTA
        XORLW   0x01
   BTFSS   STATUS,Z
   GOTO   On5
   GOTO   caso52

On5   BSF   PORTB,4
   BCF   PORTB,3

caso6    movfw   PORTA
        XORLW   0x01                  
   BTFSS   STATUS,Z
        goto    caso6                                  

caso62  movfw   PORTA
        XORLW   0x01
   BTFSS   STATUS,Z
   GOTO   On6
   GOTO   caso62

On6   BSF   PORTB,5
   BCF   PORTB,4

caso7    movfw   PORTA
        XORLW   0x01                  
   BTFSS   STATUS,Z
        goto    caso7                                  

caso72  movfw   PORTA
        XORLW   0x01
   BTFSS   STATUS,Z
   GOTO   On7
   GOTO   caso72

On7   BSF   PORTB,6
   BCF   PORTB,5

caso8    movfw   PORTA
        XORLW   0x01                  
   BTFSS   STATUS,Z
        goto    caso8                                  

caso82  movfw   PORTA
        XORLW   0x01
   BTFSS   STATUS,Z
   GOTO   On8
   GOTO   caso82

On8   BSF   PORTB,7
   BCF   PORTB,6

goto   caso1

end


¿Que instruccion hay para hacer eso?

Saludos Jachy

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: necesito ayuda con este pekeño proyecto
« Respuesta #43 en: 12 de Mayo de 2003, 03:27:00 »
Hola Jachy.

En el apartado de microcontroladores he puesto un ejercicio resuelto por flancos, quizá te sea de ayuda.

Un saludo

Desconectado jachy

  • PIC10
  • *
  • Mensajes: 26
RE: necesito ayuda con este pekeño proyecto
« Respuesta #44 en: 12 de Mayo de 2003, 05:57:00 »
Hola gracias lo del flanco de subida lo en conseguido en el ejecicio anterior pero tengo otro problemilla miratelo y me dices algo .

Saludos Jachy