Autor Tema: Encolar interrupciones en PIC16F84a  (Leído 7528 veces)

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

Desconectado merycr

  • PIC10
  • *
  • Mensajes: 19
Re: Encolar interrupciones en PIC16F84a
« Respuesta #15 en: 01 de Junio de 2008, 15:21:58 »
La interrupción se genera por el pin RB0 cada vez que alguien pulsa un botón. Luego la información está en los pines RB1, RB2, y RB3 como he dicho antes, pero no tengo los botones conectados directamente a ningún pin.

El pin RB1 importa porque si la llamada es desde dentro del ascensor tiene más prioridad (en el caso de que haya varias llamadas en cola).

Los pines RB1, RB2 y RB3 sólo se activarán si ha habido una interrupción, de modo que el estado de reposo es mientras no haya ninguna interrupción.


El pin RB4 está conectado a un servomotor para la apertura y cierre de las puertas. (Esta parte la tengo apañadita jeje)

Y los pines RB5, RB6 y RB7 se utilizan para comunicación del PIC on el motor de desplazamiento mediante el protocolo SPI (RB5 = Reloj, RB6 = Comunicación del maestro al esclavo, RB7 = señal de selección del esclavo). El PIC utiliza este protocolo SPI para enviar cada vez que lo necesite un comando (para indicar cuanto moverse y hacia donde) a la electrónica de control del motor del desplazamiento.
Todo esto es un poco lioso, aún no he llegado a ello...


(Esto vale como esquema eléctrico? xD)


Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Encolar interrupciones en PIC16F84a
« Respuesta #16 en: 01 de Junio de 2008, 15:26:29 »
Ok. Así se entiende mucho mejor.
Entonces se genera la interrupción INT en RB0, vas a la rutina de interrupción y evalúas el estado de RB1 para saber la prioridad. Ahora otra pregunta... cómo sabes en qué planta está el ascensor? Para poder conocer cuál planta queda más cerca y a cuál irá más rápidamente.
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado merycr

  • PIC10
  • *
  • Mensajes: 19
Re: Encolar interrupciones en PIC16F84a
« Respuesta #17 en: 01 de Junio de 2008, 15:31:41 »
El número de planta lo guardo en la primera posición de la memoria EEPROM del PIC.
Cada vez que cambie de planta cambiamos el valor y listo ^^

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Encolar interrupciones en PIC16F84a
« Respuesta #18 en: 01 de Junio de 2008, 18:32:32 »
A diferencia de firepic, yo entiendo menos. Si los 4 pulsadores van conectados al RB0, ¿cómo sabes de que piso se pulso? Anteriormente habías dicho por RB2 y RB3, entonces la persona que para usar el ascensor debe pulsar primero un botón y luego otro para seleccionar el piso. El primero sería para generar la interrupción y el segundo para seleccionar el piso. Estoy seguro que esto no es así.

Se me ocurre lo siguiente que, RB2 y RB3, van en la cabina pero como sensor para saber en que piso está (no está accesible al usuario). Pero sigo sin entender.


¿Porqué no pones un diagrama de conección como seria si lo tendrías que montar? porque cada vez se entiende menos. Ten encuenta que el software y el hardware, van de la mano. Si no sabemos la conección, menos sabemos como ayudarte para la generación del software.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Encolar interrupciones en PIC16F84a
« Respuesta #19 en: 01 de Junio de 2008, 18:42:43 »
Bueno tienes razón Leon, merycr no ha sido del todo claro, pues tendría que colocar el esquema eléctrico.
Pero lo que yo entiendo es que debe tener alguna circuitería (tal vez una compuerta OR) que no importa cuál interruptor sea presionado, si es presionado alguno se active una señal que es la que va a RB0. Y supongo que tiene otra circuitería que codifica el botón en un número binario que está en RB2 y RB3. Claro que no estoy seguro pero me imagino que es así. Tal vez estoy equivocado y ahí sí pues la ayuda que podré darte será nula merycr.
Esperemos entonces a que te fajes con el diagrama y lo coloques. Estoy totalmente de acuerdo con Leon. Software y Hardware siempre juntitos  :D
Ok nos leemos!  :mrgreen:
« Última modificación: 02 de Junio de 2008, 12:08:53 por firepic »
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado merycr

  • PIC10
  • *
  • Mensajes: 19
Re: Encolar interrupciones en PIC16F84a
« Respuesta #20 en: 02 de Junio de 2008, 07:42:52 »
Jo, es que o sé hacer un esquema eléctrico...  :(

Con lo de los pines RB2 y RB3  (y también el RB1 que indica la prioridad) tienen una circuitería (no tenemos que hacerla y no nos especifica cuál) que hace que cada vez que pulses un botón haya una interrupción por el pin RB0, por el pin RB1 te dice de donde ha sido la llamada, y por los RB2 y RB3 se codifica en binario a la planta a la que vamos.

Gracias por intentar ayudar aunque mis explicaciones estén un poco escasillas!    :lol:

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Encolar interrupciones en PIC16F84a
« Respuesta #21 en: 03 de Junio de 2008, 12:02:56 »
Ya. O sea que básicamente así lo especifica el proyecto y listo. Entiendo.
Merycr, qué tal si colocas el código que tienes hasta el momento?
Y ahí te iremos ayudando.
Ok saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado merycr

  • PIC10
  • *
  • Mensajes: 19
Re: Encolar interrupciones en PIC16F84a
« Respuesta #22 en: 03 de Junio de 2008, 13:11:06 »
Vale, pongo el código hasta ahora ^.^

Pero quito todo el código que tengo de apertura y cierre de las puertas, que  ya me funciona y solo va a servir para liarlo todo un poco.


Mmm oye firepic, que he pensado que (como eres el único que está ya conmigo en este hilo) mejor te envio el código por mensajillo privado, porque no soy la única que tiene que hacer este proyecto y a ver si alguien me va a coger el código y me van a decir que he copiado  :D
« Última modificación: 04 de Junio de 2008, 07:14:50 por merycr »


 

anything