Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

23/10/2009 #1


interrupciones por nivel
Hola bueno ando estudiando el 8051 en la parte de interrupciones externas por nivel.
Ya que como saben esta bandera no se apaga automaticamente como cuando es por flanco, esta hay que apagarla por software de tal forma que evitemos que se siga atendiendo un sin fin de veces.
Si alguein sabe como apagarla definitivamente a nivel de software se lo agradeceria ya que la solución que tengo hasta el momento es apagarla con CLR IE0, pero eso solo la apagaria una vez y volveria a interrumpir cuando el periferico me mande un 0.

si tienen la solución en codigo se los agradeceria busco y busco pero no lo encuentro.
23/10/2009 #2


Respuesta: interrupciones por nivel
Para eso estan las intrrupciones por flanco, para que sólo sean atendidas una sola vez.
Si programas interrupciones por nivel solo te queda inhabilitar el permiso global de interrupciones (CLR EA)
25/10/2009 #3


Respuesta: interrupciones por nivel
Hola gracias por ayudar, pero esa solución aunque valida no sería del todo viable, a lo mejor no me di a enteder bien, ya que si hiciera CLR EA ninguna interrupcion entraria, y en todo caso que solo deshabilite la externa, no sería valido ya que lo que yo quiero esque la interrupcion entre cada vez que sea el caso adecuado, ya que como sabemos cuando es por nivel puede entrar aun cuando no debia entrar. Para evitar esto debemos apagarla, pero no deshabilitandola permanentemente
28/10/2009 #4


Respuesta: interrupciones por nivel
ya que lo que yo quiero esque la interrupcion entre cada vez que sea el caso adecuado, ya que como sabemos cuando es por nivel puede entrar aun cuando no debia entrar. Para evitar esto debemos apagarla, pero no deshabilitandola permanentemente
La interrupcion no la puedas "apagar" si es por nivel;puedes atenderla o no atenderla.
Si no quieres atenderla durante una parte del programa la inhabilitas y cuando ejecutes ese programa la inhabilitas.
.
MOV A,@R1
DEC a
.
.
CLR EX0 ;A partir de aqui se inhabilita la interrupcion externa 0
. ;Desde aqui...
.
.
.
.
. ;...hasta aqui no se atiende la interrupción
SETB EX0; Vuelvo a habilitar la interrupción
.
.

Si no lo que debes hacer es que la interrupción sea activa por flanco y cada vez que "sea el caso adecuado" se atendera la interrupción una sola vez.¿Cual es el problema para que no pueda ser activa por flanco?.

Espero que esta sea la solución.
03/11/2009 #5


Respuesta: interrupciones por nivel
Ok entendi puede que sea una solución, lo intentare gracias espero sigas aportando.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.