Autor Tema: Interrupciones RB4~RB7 en PIC18F  (Leído 5836 veces)

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

Desconectado Jabeeb2K8

  • PIC10
  • *
  • Mensajes: 10
Interrupciones RB4~RB7 en PIC18F
« en: 19 de Abril de 2008, 06:43:09 »
Que tal camaradas, aqui molestando de nuevo.

He leido el datasheet del PIC18f458 (el que uso) y leido algunos ejemplos en la red e incluso aqui.... Pero aun no me queda claro como es el funcionamiento de los interruptores RB4~RB7.

Se supone que son por cambio de estado en el puerto B. Esto lo entiendo como un cambio de estado logico, de 1 a 0 o de 0 a 1. Esto quiere decir que se pueden usar exactamente como los interruptores RB0~RB2? O si no es asi, como funcionan, exactamente?

Tambien tengo dudas similares con las interrupciones del Timer0, pero pues, seria injusto preguntar debido a que no las he usado aun, ni he leido tanto sobre ellas.


El compilador que uso es el C18. Si alguien puede ayudarme con un poco de orientacion, les agradecere eternamente.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Interrupciones RB4~RB7 en PIC18F
« Respuesta #1 en: 19 de Abril de 2008, 06:57:48 »
Es muy simple:

Imagina que B4..B7 llevan pulsadores a masa (y con pullups internos a vcc, que se activan mediante un registro). Entonces, B4..B7 es 1111. Si pulsas un pulsador, por ejemplo B7, este ira a nivel cero, por lo que ahora sera 0111.

La interrupcion salta. Entras a la interrupcion, bajas el flag, y lees el puerto B para que el hardware de la interrupcion se inicialice otra vez. Haces lo que sea y sales de la interrupcion.

Si sueltas el pulsador, B4..B7 pasara de  0111 a 1111, por lo que hay otro cambio de estado. Interrupcion otra vez.

Resumiendo:

- La interrupcion salta cuando hay una transicion de 0 a 1 o de 1 a 0 en cualquiera de los pines B4..B7.
- Hasta que no leas el puerto, las transiciones posteriores no produciran interrupcion.
- La diferencia con INT0..2 es, que estos ultimos tienen un flanco definido (mediante el bit de registro correspondiente) que producirá interrupcion, mientras que RB4..7 produce interrupcion en un cambio de valor de esos 4 bits.

No se si la duda que tienes con el timer0 es similar, pero te adelanto que el timer0 interrumpe cuando pasa de 255 a 0. Y si te refieres al timer0 usado con pulsos externos, te dire, que este se incrementa con cada PULSO, es decir, supongo que con cada flanco ascendente (o descendente, una de dos).

Desconectado Jabeeb2K8

  • PIC10
  • *
  • Mensajes: 10
Re: Interrupciones RB4~RB7 en PIC18F
« Respuesta #2 en: 19 de Abril de 2008, 07:04:06 »
muchas gracias manex!!

bueno, entonces el del Timer0, por como dices, seria una interrupcion por desborde, no? Me imagino que no voy a tener problemas ahi.


Ya entendi el funcionamiento de los interruptores RB4~RB7... solo me queda una duda pequeña... dices que debe haber un cambio de estado en cualquiera de esos pines, ... pero se deben utilizar los 4 bits en conjunto, o puedo utilizar un solo pin  de esos 4 como interruptor? (Por logica, me imagino que asi es, puedo usar independientemente cualquiera de esos 4, pero uno nunca sabe  :shock:)


Gracias de nuevo manex!




Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Interrupciones RB4~RB7 en PIC18F
« Respuesta #3 en: 19 de Abril de 2008, 07:15:21 »
El hardware usa los 4 bits para computar los cambios pero puedes usar los bits que te apetezcan para tus quehaceres.

Simplemente configura como entrada el que necesites y los demas como salidas. Y recuerda no usar los otros bits para nada, o filtrar debidamente en la interrupcion los bits que te interesan, pues el pic seguirá contando como interrupcion los demas cambios de estado tambien.

Desconectado Jabeeb2K8

  • PIC10
  • *
  • Mensajes: 10
Re: Interrupciones RB4~RB7 en PIC18F
« Respuesta #4 en: 19 de Abril de 2008, 07:19:48 »
El hardware usa los 4 bits para computar los cambios pero puedes usar los bits que te apetezcan para tus quehaceres.

Simplemente configura como entrada el que necesites y los demas como salidas. Y recuerda no usar los otros bits para nada, o filtrar debidamente en la interrupcion los bits que te interesan, pues el pic seguirá contando como interrupcion los demas cambios de estado tambien.


gracias manex, ahorita me voy a poner a trabajar con ellos.


 

anything