Título: pic 16f877A Sacar un seno programando en c Publicado por: coconut en 8 Febrero 2006, 13:05 pm Hola, he hecho este programa para sacar un seno por el pto b de la pic (luego se le añade un conversor analogico-digital) programando en PICC mis dotes de C estan bastante olvidadas el caso es que no me va, y me da un error que no entiendo al declarar los enteros i y j me pide al compilar un numero?! alguien ve el erroro errores? gracias! (va a 16 MHz)
#include <16F877A.h> #device adc=8 #use delay(clock=16000000) #fuses NOWDT,HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, LVP, NOCPD, NOWRT void main() { setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); setup_psp(PSP_DISABLED); setup_spi(FALSE); setup_counters(RTCC_INTERNAL,RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); int i,j; aqui me pide una expresion numerica set_tris_b (0xFF); /Puerto B de salida int * x[0]; (antes int 8) x[0]=0x9A; /Inicializacion del seno x[1]=0xB3; x[2]=0xCA; x[3]=0xDE; x[4]=0xEE; x[5]=0xF9; x[6]=0xFF; x[7]=0xFF; x[8]=0xFC; x[9]=0xF2; x[10]=0xE3; x[11]=0xD0; x[12]=0xBA; x[13]=0xA2; x[14]=0x88; x[15]=0x6D; x[16]=0x54; x[17]=0x3C; x[18]=0x27; x[19]=0x16; x[20]=0x0A; x[21]=0x02; x[22]=0x00; x[23]=0x03; x[24]=0x0B; x[25]=0x18; x[26]=0x2A; x[27]=0x3F; x[28]=0x57; x[29]=0x71; while (1){ for (i=0;i<30;i++){ /Para recorrer la tabla for (j=0;j<125;j++){ /Para esperar el tiempo de mostreo output_b(x); } } } } Título: Re: pic 16f877A Sacar un seno programando en c Publicado por: Bastian en 8 Febrero 2006, 16:43 pm Hola!
Por lo que puedo entender, quieres crear un vector de enteros, para guardar los distintos valores binarios que vas a sacar por el puerto b secuencialmente. lo unico raro que veo es la declaracion del vector Citar int * x[0];(antes int 8) x[0]=0x9A; /Inicializacion del seno Cuando se declara un vector, entre corchetes, se pone el numero de elementos que va a tener para reservar el espacio de memoria..... por ejemplo si quieres un vector de 100 valores enteros, debes escribir: Código: int vector_de_100_enteros[100] Cuando declaras el vector lo haces con 0 elementos..... lo que no tiene sentido.... deberia ser: Código: int * x[30] Citar (antes int 8) lo habras puesto al postear, si no deberia estar comentado //Salu2! Título: Re: pic 16f877A Sacar un seno programando en c Publicado por: coconut en 8 Febrero 2006, 17:02 pm si lo de int 8 era lo que habia puesto antes un entero de 8 bits pero luego vi en este foro que lo ponian con el * y lo he cambiado, pero me sigue pidiendo una expresion numerica despues del int y si le pongo el 8 la sigue pidiendo¿?
gracias por lo del vector Título: Re: pic 16f877A Sacar un seno programando en c Publicado por: GeoMX en 21 Febrero 2006, 08:28 am No estoy seguro (porque no he programado ningún microcontrolador con C), pero me parece que el vector deberías declararlo así:
Código: int x[n_posiciones]; o así: Código: int *x; |