Autor Tema: RS-232: Interrupcion TBE  (Leído 2050 veces)

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

Desconectado Melo11

  • PIC10
  • *
  • Mensajes: 17
RS-232: Interrupcion TBE
« en: 10 de Enero de 2005, 13:04:00 »
Hola a todos.

Al empezar a probar mi programa me encuentro con lo siguiente:

Al inicializar las interrupciones el programa me entra en algun sitio del que no sale. Si inicializo la interrupcion de buffer de transmision vacio (TBE), el programa entra en la interrupcion y llega al final de ella, pero ya no ejecuta la siguiente instruccion despues de la de habilitar la interrupcion de TBE.

Estoy utilizando en compilador CCS, es decir, no me ejecuta lo que hay a continuacion de enable_interrupt para el TBE. Entra a la interrupcion del TBE, llega al final y no veo mas progresos.

¿Que puede pasar?
Si os sirve de algo, el programa en un principio no tiene nada para enviar, es decir, el buffer de transmision esta vacio, lo utilizo mas tarde.
¿no sale de la interrupcion? ¿esta continuamente entrando y saliendo?

Espero que alguien sepa algo. Gracias.

Desconectado peddrorolo

  • PIC12
  • **
  • Mensajes: 56
RE: RS-232: Interrupcion TBE
« Respuesta #1 en: 11 de Enero de 2005, 01:51:00 »
Hola melo11.
Para ayudarte , podrías postear el código. Sino es dificil visualizar el error. Según entiendo, tú habilitas la interrupción de buffer lleno para la transmisión de datos, pero no tienes datos que transmitir. ¿es posible que tenga algo en el buffer y que entre en la interrupción y que tengas que borrar la bandera por software? si es así y no lo haces, siempre estará entrando en la interrupción. Pero mejor si posteas el código y lo miramos.

Un saludo Pedro.

Desconectado Melo11

  • PIC10
  • *
  • Mensajes: 17
RE: RS-232: Interrupcion TBE
« Respuesta #2 en: 11 de Enero de 2005, 02:19:00 »
Holaaaaaaaaa.

El codigo es muy largo y un poco lioso.
Lo que pasa es que cuando habilito la interrupcion de buffer de transmision vacio (es vacio y no lleno) parece que me quedo atascado en la interrupcion o asi. No borro ningun flag en mi software. De la interrupcion se sale sin hacer nada, lo hace el propio compilador, pero puede que yo tenga que borrar algun indicador de que el buffer esta vacio.
¿puede ser eso?¿y borrando por SW ese indicador tendria problemas de volver a entrar en la interrupcion?
¿Que flag tengo que borrar?

Gracias por tu atencion y ya siento lo de no poner el codigo (en mi opinion no es imprescindible por la longitud y "rareza" del mismo).

Desconectado peddrorolo

  • PIC12
  • **
  • Mensajes: 56
RE: RS-232: Interrupcion TBE
« Respuesta #3 en: 11 de Enero de 2005, 09:16:00 »
Hola de nuevo.
Así es dificil ayudar, no se que micro usas, y utilizo los PIC y no conozco la interrupción por buffer vacio TBE. He mirado en los registros incon, pie, pir ... y no encuentro nada de TBE ni como interrupción ni como flag. Puedes poner al menos la inicialización del micro, en esta parte se suelen cometer la mayor parte de los errores.

Un saludo Pedro.

Desconectado Melo11

  • PIC10
  • *
  • Mensajes: 17
RE: RS-232: Interrupcion TBE
« Respuesta #4 en: 13 de Enero de 2005, 14:00:00 »
Hola.

La interrupcion TBE sera una interrupcion valida en el compilador CCS, puede que no sea habitual en otras.
Por ahora he solucionado el problema que os contaba habilitando la interrupcion tras enviar el primer caracter de la cadena que quiero enviar y deshabilitandolo dentro de la misma instruccion tras enviar el ultimo caracter.

No se si es un metodo un poco chapucero pero en un ejemplo que viene con el propio compilador CCS he visto que hace algo parecido con esta interrupcion.

Ahora ando liado con la otra interrupcion de la USART,  Dato disponible en el buffer de recepcion (RDA). Ya vere como hago para debuggear el programa porque algo me hace falta para darle vida a esto.

Bueno, aqui sigo por si teneis algun comentario.
Muchas gracias a todos.


 

anything