TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Cryn en 23 de Diciembre de 2008, 23:31:11
-
Me pasé unas cuantas horas revisando el problema, pero no entiendo que es lo que esta pasando con esta operación que hago, el desplazamiento a la izquierda no esta funcionando, me da como resultado 1, que es falso:
#include <16f88.h>
#fuses HS,NOWDT,NOLVP,PUT,NOBROWNOUT
#use delay(clock=20000000)
int matriz[2][8]={{255,0,0,0,0,0,0,0},{182,0,0,0,0,0,0,0}};
int carries[2];
void main(void){
int i,j;
for(i=0;i<8;i++){
for(j=0;j<2;j++){
carries[j]=shift_left(&matriz[j][i],1,0);
}
}
}
que es lo que hago mal? porque los resultados de la rotación son 1 :shock: no entiendo porque, es posible desplazar los datos de una matriz?
un saludo y muchas gracias por la ayuda.
Esto lo hice con el proteus y el ccs, les dejo el adjunto para que prueben el cof y que los valores se ponen en 1
-
hola, anoche como mi cabeza solo daba vueltas en el shift_left me soñé que no hay forma de utilizar esa función con una matriz :D
ahora hice esto:
carries[j]=shift_left(&(matriz[j][i ]),1,0);
y nada
cambie todo por esto:
a=matriz[j][i];
carries[j]=shift_left(&a,1,0);
matriz[j][i]=a;
y este si dio, entonces concluyo que para direccionar una matriz o bien no hay forma o se hace de otra manera, porque con solo un arreglo lineal la función va bien.
Que opinan??