Hola gente bonita
Espero que todos esten bien, y hablando de otras cosas, les traje algunas duditas que tengo y se que ustedes son muy buenos para estoy y les agradesco mucho su ayuda, les pongo una breve explicacion y la duda.
explicacion breve
Estoy intentando mandar señales analogicas a la PC mediante un PIC18f4550, el puerto USB y un programa hecho en Matlab, de hecho hice un tarjeta que funciona o al menos eso parece ya que si me captura las señales analogicas y se presentan en la pantalla, el detalle es que lo que se presenta en pantalla no se parece a la señal que se esta introduciendo, hice un barrido de señales y en algunas de ellas, la señal es muy parecida pero en otras, corta la señal bruscamente, aqui les pongo unas imagene para que se den una idea de lo que les comento.

esta es la señal de 60Hz

Esta es la señal de 100Hz

Esta es la señal de 1KHz
la configuracion del PIC es la siguiente: cristal de 20MHz, ADC de 10bits, PLL5, clock de 48MHz y una frecuencia de muestreo a 1KHz, para los que quieran, aqui esta el codigo que toy utilizando
#include<18F4550.h>
#device ADC=10
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,MCLR,NOPBADEN
#use delay(clock=48000000)
#define USB_HID_DEVICE FALSE
#define USB_EPI_TX_ENABLE USB_ENABLE_BULK
#define USB_EPI_RX_ENABLE USB_ENABLE_BULK
#define USB_EPI_TX_SIZE 64
#define USB_EPI_RX_SIZE 64
#include<pic18_usb.h>
#include<usb_desc_scope.h>
#include<usb.c>
#define LEDR PIN_C6
#define LED_ON output_high
#define LED_OFF output_low
#BYTE TRISA = 0x0F92
#BYTE TRISB = 0x0F93
#BYTE PORTA = 0x0F80
#BYTE PORTB = 0x0F81
#BYTE ADCON1 = 0x0FC1
#BYTE CMCON = 0x0FB4
int8 dato[64];
void main(void){
int16 A,D;
int8 B,C,E,F,i;
setup_adc_ports(ALL_ANALOG);
setup_adc_ports(AN0|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_32);
setup_counters(RTCC_INTERNAL,RTCC_DIV_256);
usb_init();
usb_task();
usb_wait_for_enumeration();
TRISA = 0x0FF;
TRISB = 0x00;
ADCON1 = 0x0F;
CMCON = 0x07;
while(TRUE)
{
for(i=0; i<16; i++)
{
if(usb_enumerated())
{
set_timer0(0);
LED_ON(LEDR);
set_adc_channel(0);
A=read_adc();
delay_us(200);
LED_OFF(LEDR);
B=A>>8;
prueba:if(A>=256)
{
A=A-256;
goto prueba;
}
C=A;
delay_us(200);
LED_ON (LEDR);
set_adc_channel(1);
D=read_adc();
delay_us(200);
LED_ON(LEDR);
E=D>>8;
prueba1:if(D>=256)
{
D=D-256;
goto prueba1;
}
F=D;
dato[(i*4)+0]=B;
dato[(i*4)+1]=C;
dato[(i*4)+2]=E;
dato[(i*4)+3]=F;
while(get_timer0()<48);
}
}
usb_put_packet(1,dato,64,USB_DTS_TOGGLE);
}
}bueno despues de esta explicación (espero haya sido breve

) les comento que la señal que quiero meter es de un electrocardiograma, pero con el codigo anterior no se ve el electro (0.05Hz - 100Hz) y ya verifique que la señal este entrando bien al la tarjeta.
aunado a lo que les comento, igualmente quiero meter un fonocardiograma (sonidos del corazon 20Hz - 1000Hz) al mismo tiempo.
gracias por toda su ayuda, y si necesitan alguna de mi parte, con todo gusto en lo que pueda los ayudo.
Un Saludo