Autor Tema: Interrupcion serie Pic Basic Pro  (Leído 2760 veces)

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

Desconectado spyap

  • PIC10
  • *
  • Mensajes: 2
Interrupcion serie Pic Basic Pro
« en: 09 de Noviembre de 2004, 22:55:00 »
Muchas gracias por leer mi post.
Soy nuevo en el picbasic, aunque he trabajado mucho en asm, tengo un problema, necesito que mi programa haga una cosa por ejemlo prenda este enviando por serial "Esperando....." cada segundo , y si llega algo por el puerto serie entonces que pare y transmita algo como "Interrupcion...." , Listo el programa inicia y empieza a enviar Esperando... y lo hace cada segundo, pero cuando preciono una tecla me transmite cuatro veces "interrupcion...." y luego una vez " Esperando..." y luego cuatro veces " interrupcion... " y luego "esperando... " y asi sin fin...
He leido , he buscado pero no se porque diablos es que no funciona,
este es el código del programa

DEFINE HSER_TXSTA 24H " add TXSTA value, high speed
DEFINE HSER_SPBRG 40H " add SPBRG value
DEFINE HSER_BAUD 9600 "Hser baud rate
DEFINE OSC 10
CR CON 13
Char VAR BYTE
on interrupt goto inter
 
Start:  INTCON = %11000000
        PIE1=%00100000
   
        HSEROUT ["Esperando..... ",10,CR]
        pause 1000
        GOTO Start
        disable
        inter:
        HSEROUT ["Interrupcion ",10,CR]
        resume
        enable
    Porfavor alguien que me ayude :"(


 
     

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Interrupcion serie Pic Basic Pro
« Respuesta #1 en: 10 de Noviembre de 2004, 12:51:00 »
Hola Spyap,
Podrias empezar mejorando un poco la sintaxys, no estes envie y envie que esta listo, con una ves es suficiente(siemrpe que lo haga bien por supuesto)

DEFINE HSER_TXSTA 24H " add TXSTA value, high speed
DEFINE HSER_SPBRG 40H " add SPBRG value
DEFINE HSER_BAUD 9600 "Hser baud rate
DEFINE OSC 10
CR CON 13
Char VAR BYTE

pause 500             <--- un poco de tiempo para estabilizacion, puedes modificarlo si hace falta
on interrupt goto inter
HSEROUT ["Esperando..... ",10,CR]


Start: INTCON = %11000000
PIE1=%00100000
GOTO Start

disable
inter:
HSEROUT ["Interrupcion ",10,CR]
resume
enable

Otra cosa, estas usando interrupcion via software es probable que esten acumulandose por la anterior sintaxis las interrupciones, prueba con la que te puse haber si mejora. Acuerdate que el comando te demorara un tiempo y la interrupcion no se tomara hasta que termine el comando o uno de sus subfunciones incluidassin contar de los Rebotes que da el boton(2 o 3 o 4,) al apretarlo por eso tambien puede ser que guarde 3 o 4 o mas interrupciones.
Un abrazo pana


 

anything