SoloCodigo
		Programación Específica => Microcontroladores => Mensaje iniciado por: propic_00 en Jueves 18 de Marzo de 2010, 01:34
		
			
			- 
				Hola ha todos estoy tratando de realizar la comunicación del puerto seria con labview  pero ni problema esta que cuando trato de graficar la  los datos que llagan por el puerto serial no me funciona la grafica de la señal ECG,  debería ser igual a la del osciloscopio pero no lo es no sé si es el software que está mal diseñado o la Interfax   porfa  si alguien puede ayudarme se lo agradecería   
 Aquí le dejo el programa que diseñe
 
 list      p=16f877a            ; list directive to define processor
 #include <p16f877a.inc>        ; INCLUIMOS LAS DEFINICIONES DEL PIC  TILIZADO
 
 #define BANCO_1 bsf STATUS,RP0   ;DEFINICION DE BANCO 1
 #define BANCO_0 bcf STATUS,RP0  ;DEFINICION DE BANCO 0
 ERRORLEVEL -306, -302            ;QUITAMOS LOS ERRORES DE BANCO EN MPLAB
 RADIX HEX                       ; sistema de numeracion hexadecimal
 
 __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _LVP_ON& _DEBUG_OFF & _CPD_OFF
 
 ; ***********************************
 ; *    DEFINICION DE ETIQUETAS      *
 ; ***********************************
 org 0
 goto inicio
 
 ; **************************************************
 ; *    RUTINA DE INICIO, AUQI CONFIGURAMOS EL PIC  *
 ; **************************************************
 inicio
 clrf       PORTA
 clrf   PORTB
 bsf   STATUS,RP0   ;Selecciona banco 1
 movlw   b'00000110'
 movwf   ADCON1      ;Puerta A E/S digitales
 clrf   TRISB      ;Puerta B se configura como
 
 BANCO_1
 clrf   PORTC
 movlw      b'10111111'
 movwf      TRISC
 movlw      b'00100100'   ; SYNC=0 (asincrono) y BRGH = 1 (alta velocidad)
 movwf      TXSTA
 movlw      .129
 movwf      SPBRG     ;9600 CON UN CRISTAL DE 20MHz
 BANCO_0
 bsf   RCSTA,SPEN   ;USART en On
 
 
 Init_ADC
 BANCO_0
 movlw   b'10000001'
 movwf   ADCON0
 Loop     bsf   STATUS,RP0   ;Selecciona página 1
 movlw b'00000001'
 movwf TRISA      ;Puerta A entradas
 clrf   ADCON1      ;Puerta A entradas analógicas
 bcf   STATUS,RP0                 ;Selecciona página 0
 bcf   PIR1,ADIF                 ;Restaura el flag del
 nop
 nop
 bsf     ADCON0,GO_DONE      ;inicializa la conversion
 ADC_TERNINO
 btfss    PIR1,ADIF   ;Fin de conversión ??
 goto     ADC_TERNINO          ;espera a terminar la conversion
 bsf   STATUS,RP0   ;Selecciona banco 1
 movlw b'00000110'
 movwf ADCON1
 BANCO_0
 movf      ADRESH,w
 andlw     b'11111111'
 BANCO_0
 movwf     TXREG   ;el resultado es retornado  (8bits)
 nop
 nop
 nop
 nop
 nop
 nop
 nop
 nop
 nop
 
 allsend
 BANCO_1       ; Banco 1
 btfss  TXSTA,TRMT        ; byte transmitido ?????
 goto    allsend         ; No pues espera
 
 goto Loop
 END
- 
				bueno no he revisado tu programa (hace mucho que no programo en ensamblador)
 pero puedes revisar algunos puntos para ver si el problema esta ahi
 
 1) a que velocidad estas muestreando tu señal de ECG,
 
 recuerda que si muestreas a una velocidad muy baja no podrás reconstruir correctamente tu señal
 
 2) a que velocidad estas enviando los datos muestreados,
 esto esta relacionado también con la forma en como estas haciendo todo el proceso de captura y transmisión,
 por ejemplo : puedes tomar una muestra y transmitirla por el serial y al terminar la transmisión esperar un tiempo, tomar
 otra muestra y enviarla por el serial, esperar .... y asi sucesivamente
 esta forma no te servirá porque aquí pierdes tiempo durante la trasmisión serial
 
 Otra forma de hacerlo es mediante el uso de timers e interrupciones, un timer que se encargue de la captura de datos, y otro de la trasmisión serial
 esta es la mejor forma de hacerlo porque aquí puedes controlar las temporizaciones de captura y trasmisión
 3) del lado del software del PC, como estas haciendo la lectura y la graficación? lees cada dato del puerto serial y lo graficas?
 o almacenas en un buffer y luego graficas?
 la segunda opcion es mejor porque en la primera el sistema debe estar muy ocupado leyendo datos que están constantemente llegando
 
 bueno estas son algunas ideas,
 
 espero te sirvan
 
 Saludos
 Victor Pasilla Campos
 Puebla, Pue.
 México