Configurando frecuencias de muestreo con sentencia switch

Saludos señores! Primera vez que publico un post de cualquier naturaleza!

Estoy realizando una tarjeta de adquisición de datos para mi proyecto de grado. Esta tarjeta convertirá una señal analógica a digital, y enviará el resultado a LabVIEW, donde se visualizará el espectro de magnitud de dicha señal.

Todo iba bien, hasta que tuve que usar la sentencia switch para poder variar la frecuencia de muestreo del ADC a gusto del usuario.

El problema consiste en que PICC me advierte acerca de unos errores que sigo sin comprender, pues en la sentencia switch me dice que está essperando una declaración. Para que puedan verlo por ustedes mismos, les dejo el código del programa, y la imagen de la ventana de errores de PICC.

#include <18F4550.h>
#device adc=10
#fuses xt,NOWDT,NOPROTECT,NOLVP,NODEBUG
#use delay(clock=48000000) //Para Xtal de 20Mhz

#define usb_con_sense_pin pin_b2
#include <usb_cdc.h>

int16 q;
int cadena1=usb_cdc_getc();
int16 IniciarConteoEn;

switch(cadena1){

case 0:
IniciarConteoEn=65333;
break;
case 1:
IniciarConteoEn=65311;
break;
case 2:
IniciarConteoEn=65208;
break;

}

float p;

#int_TIMER1 //Interrupción timer1
void temp1s(void) //función
{
output_toggle(PIN_B1);
set_adc_channel(0);
delay_us(20);
q=read_adc();
set_timer1(IniciarConteoEn);
}




void main()
{

setup_timer_1 (T1_INTERNAL | T1_DIV_BY_1); ///configuro timer 1 con reloj interno y prescaler de 1

enable_interrupts(INT_TIMER1); //habilita interrupción timer1
enable_interrupts(global); //habilita interrupción general
set_timer1(IniciarConteoEn); //Precarga del timer1
setup_adc_ports(AN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

usb_cdc_init();
usb_init();
while(1)
{
usb_task();
if(usb_enumerated())
{
p=(5.0*q)/1024.0;

printf(usb_cdc_putc,"%c",make8(q,0));
printf(usb_cdc_putc,"%c",make8(q,1));

//esperar respuesta
delay_ms(1000);
}
}
}

En la imagen adjunta dejo el resultado que me da PICC.

Cualquier ayuda se agradece!
 

Adjuntos

  • Dibujo.JPG
    Dibujo.JPG
    78.9 KB · Visitas: 4
Mmm no he usado ese lenguaje de programacion, pero usualmente va un espacio entre la sentencia switch y la variable... tambien puedes intentar quitando los parentesis...
 
Atrás
Arriba