Autor Tema: PROBLEMON Visualizacion de mensajes en LCD enviados por un PC  (Leído 1773 veces)

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

Desconectado Sacahe

  • PIC12
  • **
  • Mensajes: 68
HOLA AMIGOS MI PROBLEMA ES EL SIGUIENTE:

ESTOY TRATANDO DE VISUALIZAR MENSAJES O CADENAS DE CARACTERES ENVIADOS SERIALMENTE DESDE UN PC EN UN LCD CONTROLADO POR UN 16F873 Y MI PROBLEMA LLEGA CUANDO NECESITO VISUALIZAR UN SEGUNDO MENSAJE (EL PRIMER LO LOGRO VISUALIZAR) NO LOGRO CONSEGUIR LA SECUENCIA PARA TAL TAREA, HE TRATADO ACOMODAR EL PROGRAMA EN LA FORMA QUE ME PUEDA FUNCIONAR PERO NO LO LOGRO.

LA RECEPCION DE CARACTERES LO HAGO POR MEDIO DE INTERRUPCIONES Y LOS ALMACENO EN LA RAM A PARTIR DE LA DIRECCION H'27' CON FSR E INDF, ASI:

INTERRUPCION:

RX_DATO   BTFSS      PIR1,RCIF                 ;INTERRUPCION EN LA RECEPCION?
                 RETFIE                                     ;NO, FALSA INTERRUPCION
                 BCF         PIR1,RCIF                 ;SI, LIMPIA FLAG DE INTERRUPCION
      
                 MOVWF    W_TEMP                    ;COPIAMOS EL ACUMULADOR W AL REGISTRO W_TEMP
                 MOVF       STATUS,W                 ;GUARDA STATUS AL ACUMULADOR
                 MOVWF    STAT_TEMP      

                 MOVF       RCREG,W                  ;RECIBE DATO TRANSMITIDO POR EL PC
                 MOVWF    INDF                         ;LO GUARDAMOS EN EL REGISTRO QUE APUNTA FSR
                 INCF        FSR,1                       ;PASAMOS AL REGISTRO SIGUIENTE
                 INCF        CONTA                     ;CUENTA CADA CARACTER RECIBIDO

                 MOVF       STAT_TEMP,W
                 MOVWF    STATUS                     ;RECUPERA EL REGISTRO STATUS
                 SWAPF     W_TEMP,F      
                 SWAPF     W_TEMP,W                   ;RECUPERA EL ACUMULADOR W
                 RETFIE
 
LUEGO LA VISUALIZACION LA HAGO CON LA SIGUIENTE SUBRUTINA UTILIZANDO TAMBIEN FSR E INDF, ASI:

VISUALIZA
                MOVLW     H'27'                         ;PRIMERA DIRECCION RAM EN LA QUE SE
                MOVWF     FSR                          ; ALMACENO EL PRIMER CARACTER DEL MENSAJE
                CLRF        CONTADOR                ;
OTRA1      MOVF       INDF,W      
                CALL        DATO                        ;LLAMO A ESTA SUBRUTINA PARA PONER EL DATO AL LCD
                MOVLW     H'FF'                         ;RETARDO ENTRE CARACTERES
                MOVWF     RETARDO                 ;
RETA1       CALL        DELAY                      ;
                CALL        DELAY                      ;
                DECFSZ    RETARDO,1              ;
                GOTO       RETA1                      ;
                INCF        FSR,1
                INCF        CONTADOR,1
                MOVF       CONTA,W                  ;CARGA W CON EL DATO DE CONTA
                XORWF     CONTADOR,0
                BTFSS      STATUS,2                 ;TERMINO MENSAJE?
                GOTO       OTRA1                     ;NO   
                GOTO       VISUALIZA               ;SI

PARA QUE EL MENSAJE SE VISUALICE SE TIENE QUE REPETIR ESTA RUTINA VARIAS VECES, Y CON EL PRIMER MENSAJE LO LOGRO PERO SI LLEGA UN SEGUNDO MENSAJE NO ME FUNCIONA Y SE PORQUE: PORQUE SE PROVOCA MUCHAS INTERRUPCIONES DEPENDIENDO DEL NUMERO DE CARACTERES DEL MENSAJE  (No INTERRPUCIONES = No DE CARACTERES ENVIADOS) Y SE ME REVUELVE LOS CONTENIDOS DEL FSR Y EL INDF DE LA RUTINA ANTERIOR Y DE LA RUTINA DE LA INTERRUPCION.

EL OBJETIVO DEL PROGRAMA ES VISUALIZAR MENSAJES ENVIADOS POR EL PC CICLICAMENTE EJM: ENVIO UN MENSAJE Y ESTE PERMANECERA VISUALIZANDOSE EN EL DISPLAY HASTA QUE LLEGUE EL SIGUIENTE MENSAJE Y ASI SUCESIVAMENTE...SIN IMPORTAR LA LONGITUD DEL MENSAJE...PORFAVOR LES AGRADECERIA SI ME AYUDAN ...O DE QUE OTRA FORMA LO PUEDO HACER...ESPERO SU PRONTA RESPUESTA YA QUE LA NECESITO LO MAS PRONTO POSIBLE

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: PROBLEMON Visualizacion de mensajes en LCD enviados por un PC
« Respuesta #1 en: 06 de Junio de 2006, 18:56:04 »
Hola compañero, has habilitado el bit RCIE (PIE1<5>), PEIE (INTCON<6>), GIE (INTCON<7>). Asegurate de setearlos.

Saludos LabPIC :mrgreen:
¡¡¡Viva México cabrones!!!

Desconectado MSK

  • PIC12
  • **
  • Mensajes: 53
Re: PROBLEMON Visualizacion de mensajes en LCD enviados por un PC
« Respuesta #2 en: 06 de Junio de 2006, 21:56:33 »
Hola mira te modifique unas cosas, el fsr lo guardas en un temporal al entrar a la interrupcion igual al que usas adentro de la int.  Bueno si se entiende contame si te funciona, o lo analisamos



RX_DATO   BTFSS      PIR1,RCIF                 ;INTERRUPCION EN LA RECEPCION?
                 RETFIE                                     ;NO, FALSA INTERRUPCION
                 BCF         PIR1,RCIF                 ;SI, LIMPIA FLAG DE INTERRUPCION
     
                 MOVWF    W_TEMP                    ;COPIAMOS EL ACUMULADOR W AL REGISTRO W_TEMP
                 MOVF       STATUS,W                 ;GUARDA STATUS AL ACUMULADOR
                 MOVWF    STAT_TEMP     

              movf     fsr,w
              movwf   tempfsr     ; salva el fsr

              movf     tempfsrint,w;  en este temporal guardas el fsr de int. ( otro valor de RAM no 27)
              movwf   fsr   

                 MOVF       RCREG,W                  ;RECIBE DATO TRANSMITIDO POR EL PC
                 MOVWF    INDF                         ;LO GUARDAMOS EN EL REGISTRO QUE APUNTA FSR
                 INCF        FSR,1                       ;PASAMOS AL REGISTRO SIGUIENTE
                 INCF        CONTA                     ;CUENTA CADA CARACTER RECIBIDO

         movf  fsr,w
         movwf  tempfsrint
     
        movf  tempfsr,w
        movwf  fsr                ; aca dejas el fsr igual que antes de entrar

                 MOVF       STAT_TEMP,W
                 MOVWF    STATUS                     ;RECUPERA EL REGISTRO STATUS
                 SWAPF     W_TEMP,F     
                 SWAPF     W_TEMP,W                   ;RECUPERA EL ACUMULADOR W
                 RETFIE

Desconectado Sacahe

  • PIC12
  • **
  • Mensajes: 68
Re: PROBLEMON Visualizacion de mensajes en LCD enviados por un PC
« Respuesta #3 en: 07 de Junio de 2006, 12:31:36 »
Bien Amigo voy a probar a ver si me funciona....GRACIAS


 

anything