TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: spyap 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 :"(
-
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