hola mis amigos, recurro a ustedes para unas dudas que me aquejan.
resulta que estoy tratando de enviar una señal seno de 60Hz por USB al pc mediante LABVIEW, pero cuando la vizualizo, el conversor en LV solo me entrega los valores picos de la señal obteniendo asi solo una señal triangular pero esta no es periodica, ni constante en amplitud. es por esto que quisiera saber que puedo hacer, pues se ve que es un problema de muestreo, porque tengo un filtro antes de la entrada analogica del pic.
quisiera saber como puedo establecer el periodo de muestreo ps lo unico que hago es una modificación a este codigo, llamado PIC usb de J1M, sin embargo lo posteo en su totalidad para que se entienda mejor lo que quiero hacer
este programa lo probe conun voltaje dc y funciono de maravilla, pero ahora que lo intento con uno A.C pasa lo que pasa.
una duda que me aqueja es si tal vez esta función setup_adc(ADC_CLOCK_INTERNAL); pueda ser configurada para obtener un muestreo mas preciso, o si talvez necesito de una herramienta en LV para que la señal se sincronice y sea mas sincronica, o sera que debo almacenar los datos en algun array?, pero en ese caso, como hago eso?. help!
quisiera saber si alguien me puede ayudar con esto, si ese si es el preiodo de muestreo correcto, cuantas muestras como maximo puede tomar el pic, como puedo configurar el conversor para que trabaje a la frecuencia de muestreo que quiero, o si puedo hacer algo para que envie mas datos no valores locos .... seria de gran ayuda, gracias
resulta que estoy tratando de enviar una señal seno de 60Hz por USB al pc mediante LABVIEW, pero cuando la vizualizo, el conversor en LV solo me entrega los valores picos de la señal obteniendo asi solo una señal triangular pero esta no es periodica, ni constante en amplitud. es por esto que quisiera saber que puedo hacer, pues se ve que es un problema de muestreo, porque tengo un filtro antes de la entrada analogica del pic.
quisiera saber como puedo establecer el periodo de muestreo ps lo unico que hago es una modificación a este codigo, llamado PIC usb de J1M, sin embargo lo posteo en su totalidad para que se entienda mejor lo que quiero hacer
Código:
#include <18F2550.h>
#device ADC=10
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN
#use delay(clock=48000000)
#define USB_HID_DEVICE FALSE
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK
#define USB_EP1_TX_SIZE 1
#define USB_EP1_RX_SIZE 3
#include <pic18_usb.h> //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include <PicUSB.h> //Configuración del USB y los descriptores para este dispositivo
#include <usb.c> //handles usb setup tokens and get descriptor reports
#define LEDV PIN_B6
#define LEDA PIN_B7
#define LED_ON output_high
#define LED_OFF output_low
#define modo recibe[0]
#define param1 recibe[1]
#define param2 recibe[2]
#define resultado envia[0]
void main(void) {
int8 recibe[3];
int8 envia[1];
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
LED_OFF(LEDV);
LED_ON(LEDA);
usb_init();
usb_task();
usb_wait_for_enumeration();
LED_OFF(LEDA);
LED_ON(LEDV);
while (TRUE)
{
if(usb_enumerated())
{
if (usb_kbhit(1))
{
usb_get_packet(1, recibe, 3);
if (modo == 0) // ADC_Mode
{
while(True)
{
delay_ms(8);
resultado = read_adc();
usb_put_packet(1, envia, 1, USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1byte del EP1 al PC
}
}
if (modo == 1) // Modo_Led
{
if (param1 == 0) {LED_OFF(LEDV); LED_OFF(LEDA);}
if (param1 == 1) {LED_ON(LEDV); LED_OFF(LEDA);}
if (param1 == 2) {LED_OFF(LEDV); LED_ON(LEDA);}
}
}
}
}
}
este programa lo probe conun voltaje dc y funciono de maravilla, pero ahora que lo intento con uno A.C pasa lo que pasa.
una duda que me aqueja es si tal vez esta función setup_adc(ADC_CLOCK_INTERNAL); pueda ser configurada para obtener un muestreo mas preciso, o si talvez necesito de una herramienta en LV para que la señal se sincronice y sea mas sincronica, o sera que debo almacenar los datos en algun array?, pero en ese caso, como hago eso?. help!
quisiera saber si alguien me puede ayudar con esto, si ese si es el preiodo de muestreo correcto, cuantas muestras como maximo puede tomar el pic, como puedo configurar el conversor para que trabaje a la frecuencia de muestreo que quiero, o si puedo hacer algo para que envie mas datos no valores locos .... seria de gran ayuda, gracias