TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: carper en 08 de Mayo de 2014, 22:47:11

Título: pic ccs no permite almacenar matriz booleana?
Publicado por: carper en 08 de Mayo de 2014, 22:47:11
hoola a todos!    pasa que quiero almacenar datos booleanos 0 o 1 en una matriz declarada como booleana pero al ingresar datos como ste:
             100001                                    100001
             010010                                    100001 
             001100      imprime esto          100001
             010010                                    100001
             100001                                    100001
lo que quiero saber si es posible ingresar 0os o 1os a una matriz booleana? tambien pensaba ingresarlos mediante codigo asm despues de aprende...rlo...
Título: Re: pic ccs no permite almacenar matriz booleana?
Publicado por: rivale en 09 de Mayo de 2014, 10:40:08
la variable mínima es de 8 bits, si quieres hacer un arreglo de booleanos, podrías hacer un vector de enteros y modificar cada bit de cada entero, así tendrías el equivalente a una matriz de 8xn
Título: Re: pic ccs no permite almacenar matriz booleana?
Publicado por: PalitroqueZ en 09 de Mayo de 2014, 15:35:41
muestra el código donde ocurre el problema, yo he trabajado con arreglos de booleanos sin problemas
Título: Re: pic ccs no permite almacenar matriz booleana?
Publicado por: carper en 10 de Mayo de 2014, 16:39:02
me  paso por la cabeza lo de modificar enteros equivalenetes:
129 -> 10000001
66   -> 01000010 e ingresarlos. Me consumiria mucho mas tiempo de todos modos el trozo (codigo de prueba) es este:

#include <16F628A.h>...
//FUNCTIONS--------------------
void configPuerto(void);
void carga();
void bitToM(short boo);
void mostrar();

signed int ii,jj;
short mat[8][16], bit = 0;

void main(void){
   configPuerto();
   printf("start\r");
   printf("loading... \r");
   carga();
   mostrar();
}

void carga(){
   for(ii = 0; ii < 8; ii++){
      for(jj = 0; jj < 16; jj++){
         if(ii%3 == 0 && jj%2 == 0){
            bitToM(1);
         }else{
            bitToM(0);
         }
      }
   }
}

void bitToM(short boo){
    //funcion alternativa donde pudo haber posible error pero no!
    mat[ii][jj] = boo;
}

void mostrar(){
    for(ii = 0; ii < 8; ii++){
      for(jj = 0; jj < 16; jj++){
         printf("%d ",mat[ii][jj]);
      }
      printf("\r");
    }
}

void configPuerto(void){
   TRISA = 0x00;  
   TRISB = 0X00;  
   setup_timer_0(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);
}

mm... hasta ahora no se me ocurrio alguna forma de poder ingresar datos booleanos?
Título: Re: pic ccs no permite almacenar matriz booleana?
Publicado por: PalitroqueZ en 10 de Mayo de 2014, 18:11:38
pues el código compila sin errores, debe ser que hay algo con la lógica a la hora de guardar los bits