FAQ FAQ  •  Buscar Buscar  •  Registrarse Registrarse  •  Entre para ver sus mensajes privados Entre para ver sus mensajes privados
Login Login

comunicacion serial + interrupcion TMR PICBASIC
Índice de los Foros Electronica Facil » FOROS ELECTRONICA » Microcontroladores PIC
Publicar nuevo tema   Responder al tema
Ver tema anteriorEntre para ver sus mensajes privadosVer tema siguiente
AutorMensaje
alan980
Asunto: comunicacion serial + interrupcion TMR PICBASIC MensajePublicado: 25 Jun, 2017 - 04:17
Nuevo en el Foro
Nuevo en el Foro


Registrado: 25 Jun, 2017
Mensajes: 1

Hola, ando con un problemilla que no logro corregir, estoy trabajando con la interrupcion por TMR0 asi como con comunicacion serial con un modulo Bluetooth para un pic 18F4550, todo andaba bien con mi comunicacion serial pero al momento de agregarle la interrupcion por TMR, no anda como deberia, ya que mi intencion es que la comunicacion serial funcione al recibir caracteres y cada uno efectua diferentes tareas mientras tanto el timer debe ejecutarse cada 100mS aproximandamente para mandar un texto por serial, con mi codigo actual la comunicacion se realiza pero la interrupcion no ocurre hasta que no se recibe algun valor por HSERIN,

en resumen....el pic espera valores con HSERIN mientras deberia interrumpirse cada cierto tiempo y mandar texto por serial.....que ocurre realmente?.....el pic espera un valor y al recibirlo ejecuta las tareas y luego ejecuta la interrupcion, parece mas una interrpcion por cambio de estado que por timer

realmente en tiempo de interrupcion no me preocupa ya que con las formulas se puede modificar, al momento solo quisiera que se ejecutra la interrupcion correctamente, anexo codigo, gracias por su tiempo

_______________________________________________________________________________________
'----------------------FUSIBLES------------------------------
DEFINE OSC 48 'FRECUENCIA PARA LOS CALCULOS DE RETARDO
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h 'ASINCRONO, PARA OSC 4 ES HIGH SPEED 24H, PARA OSC 48 ES LOW SPEED 20H
DEFINE HSER_BAUD 9600

'----------------------REGISTROS----------------------------------
ADCON1 = %00001111 'TODOS LOS PINES DIGITALES
BAUDCON.3 = 0 '8 BITS BAUD RATE GENERATOR
RCON.7 = 1 'SISTEMA DE PRIORIDAD EN LAS INTERRUPCIONES 1 ACTIVADO 0 DESACTIVADO
CMCON = 7
INTCON = %10100000 'CONFIGURANDO LA INTERRUPCION TMR0, BIT 2 FLAG TMR0
INTCON2.7 = 1 'DESACTIVAR LAS RESISTENCIAS EN PULL-UP DEL PUERTO B
INTCON2.1 = 1 'PRIORIDAD DE LA INTERRUPCION POR TMR0
T0CON = %10000111 'TIMER ACTIVO 16 BITS TEMPORIZADOR PRESCALER DE 1:256
TMR0H = $ED '%11101101 'VALORES DE INICIO DE CONTEO TIMER 16BITS
TMR0L = $A9 '%10101001
TRISC = %10000000 'PIN7 RECEPCION PIN 6 TRANSMISION
TRISD = 0 'PUERTO D PARA LOS MOTORES

'----------------------VARIABLES----------------------------------------
CR CON 13 'VALOR ASCII DEL 13 DECIMAL ES CR "RETORNO DE CARRO"
TIEMPO VAR BYTE
DISTANCIA VAR BYTE
CHAR VAR BYTE

'-----------------------ALIAS--------------------------------------------

CLEAR 'BORRA TODAS LAS VARIABLES

PORTC = 0
PORTD = 0

ON INTERRUPT GOTO SENSOR 'LECTURA CADA 100mS

HSEROUT [" INICIE",CR]
INICIO:

HSERIN [Char] 'ESPERA DE UN VALOR

SELECT CASE CHAR
CASE "A"
PORTD = %10011001

CASE "B"
PORTD = %01100110

CASE "C"
PORTD = %10010110

CASE "D"
PORTD = %01101001

CASE "E"
PORTD = 0

END SELECT

GOTO INICIO

DISABLE
SENSOR:

HSEROUT [" ME INTERRUMPI", CR]

TMR0H = $ED '%11101101
TMR0L = $A9 '%10101001
INTCON = %10100000 'BORRANDO BANDERA DE INTERRUPCION

RESUME
ENABLE
END
 
 Ver perfil de usuario Enviar mensaje privado  
Responder citando Volver arriba
rina
Asunto:  MensajePublicado: 13 Jul, 2017 - 11:17
Fanatico de la Electronica
Fanatico de la Electronica


Registrado: 14 Ago, 2005
Mensajes: 1894

HSERIN no esta trabajando por hardware si no por una rutina de softwar del pic basic, me imagino que parara todas las interrucciones de la que la ejecutas....

configura el puerto Rs232 manual mente por hardware para poder cargarlo en el sub programa de interrucones..

otra cosa que tanbien es bueno definir las prioridades de interruciones de ese pic (dispone de dos tipos de prioridad de interrucion)

un saludo
 
 Ver perfil de usuario Enviar mensaje privado  
Responder citando Volver arriba
Mostrar mensajes anteriores:     
Cambiar a:  
Todas las horas son GMT + 1 Hora
Publicar nuevo tema   Responder al tema
Ver tema anteriorEntre para ver sus mensajes privadosVer tema siguiente
 Índice de los Foros Electronica Facil » FOROS ELECTRONICA »  Microcontroladores PIC
powered by phppowered by MySQLPOWERED BY APACHEPOWERED BY CentOS© 2004 - 2017Información LegalPrensa