Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

10/04/2011 #1


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!
10/04/2011 #2
Moderador

Avatar de Chico3001

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...
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.