Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: vasconinicolas en 24 de Junio de 2008, 13:08:49
Título: Duda en manejo de array
Publicado por: vasconinicolas en 24 de Junio de 2008, 13:08:49
Tengo esto y no funciona, seguramente es debido a mi desconocimiento de sintaxis del C, algun alma piadosa me lo confirmaría?
char vec[8]={1,3,2,6,4,12,8,9}, pp=0;
if (pp=7){ pp=0;} else{ pp++;} portb=vec[pp]; // escribo en portb el valor binario de vec correspondiente a la posicion pp en el arreglo.. }
Gracias y saludos.
Título: Re: Duda en manejo de array
Publicado por: jfh900 en 24 de Junio de 2008, 13:13:09
Hola vasconinicolas .
La comparación se hace con pp==7 y no con pp=7 que es una asignación.
Un saludo
Título: Re: Duda en manejo de array
Publicado por: firepic en 24 de Junio de 2008, 13:59:11
Es sólo un detalle, pero igual te lo digo: cuando se ejecuta una sóla instrucción dentro del if o else, no hacen falta las llaves. Se ve más elegante así:
Código: C
char vec[8]={1,3,2,6,4,12,8,9}, pp=0;
if(pp==7) pp=0;
else pp++;
portb=vec[pp];// escribo en portb el valor binario de vec correspondiente a la posicion pp en el arreglo..
Otra cosa, supongo que tienes definido correctamente el portb para que te pueda funcionar de esa forma. Yo lo hago usando la instrucción "output_x(valor)", es decir, quedaría así:
Código: C
char vec[8]={1,3,2,6,4,12,8,9}, pp=0;
if(pp==7) pp=0;
else pp++;
output_B(vec[pp]);// escribo en portb el valor binario de vec correspondiente a la posicion pp en el arreglo..
De todos modos como tú lo haces también debe funcionar. No más te estoy dando otra opción. Ok saludos, nos leemos! :mrgreen:
Título: Re: Duda en manejo de array
Publicado por: vasconinicolas en 24 de Junio de 2008, 20:25:24
Hola jfh, gracias por avivarme con ese gran "detalle".. lo que es empezar en C y aprender a los tumbos... eso si, no se me olvida más el detalle jejeje. Firepic, una sutileza de experto la suya, gracias igual.. respecto a la asignacion del portb yo la habia hecho asi:
#byte portb=0x06
y luego la llamaba
portb=vec[pp];
voy a probar la que tu dices porque me parece mejor. Un abrazo N.
Título: Re: Duda en manejo de array
Publicado por: firepic en 24 de Junio de 2008, 20:59:19
Yo no diría lo de "experto", pues estoy aprendiendo igual que tú :D Y no hay nada que agradecer... yo también he recibido mucha ayuda aquí en el foro... para eso estamos, para ayudarnos en lo que se pueda. Saludos, nos leemos! :mrgreen:
Título: Re: Duda en manejo de array
Publicado por: MLO__ en 24 de Junio de 2008, 22:10:25
Hola.
Puedes usar la configuracion que tienes, corre igual, la unica diferencia sera cuando quieras migrar a otro microcontrolador (un 18 por ejemplo), la direccion no sera la misma y por ende no te correra, por eso yo utilizo tambien lo que menciono Javier.