TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: bondadoso en 13 de Diciembre de 2011, 20:42:27

Título: leer algunos datos de un arrray.
Publicado por: bondadoso en 13 de Diciembre de 2011, 20:42:27
hola a todos estoy intentando hacer una pequeña libreria para mandar texto por i2c a un display motorola c115 la parte del display ya la tengo entendida solo falta ver como hacer una funcion que reciba un string y lo mande por i2c, por ahora probe: i2c_write(array); solo manda el primer byte de el array como podria ser por ejemplo una funcion que sea asi:  write(ABC); y se mande los 5 bytes de a y b y c, yo creo que es sencillo de hacer.

void write(char c);
void write0(int8 c);
const int8 array[6][5]={
   0b00000000,   0b00000000,   0b00000000,   0b00000000,   0b00000000, //SPACE
   0b01000100,   0b01000100,   0b01000100,   0b00000000,   0b01000100, //!
   0b11101110,   0b10101010,   0b11101110,   0b10101010,   0b10101010, //A
   0b11001100,   0b10101010,   0b11101110,   0b10101010,   0b11001100, //B
   0b11101110,   0b10001000,   0b10001000,   0b10001000,   0b11101110, //C
   0b11001100,   0b10101010,   0b10101010,   0b10101010,   0b11001100, //D
};

void main(){
  // while (TRUE) {
      i2c_start();   
      i2c_write(array);
      i2c_stop();
  // }
}

la verdad estoy empezando con ccs cualquier ayuda se las agradecere.
Título: Re: leer algunos datos de un arrray.
Publicado por: Suky en 13 de Diciembre de 2011, 22:09:30
Se podría hacer:


Código: C
  1. void vWriteArray(char *Ptr, char Largo){
  2.     char k,j;
  3.  
  4.     i2c_start();
  5.     for(k=0;k<Largo;k++){
  6.         for(j=0;j<5;j++){
  7.              write(*Ptr++);
  8.         }
  9.     }
  10.     i2c_stop();
  11. }

y llamarla:

Código: C
  1. vWriteArray(&array[0][0],6);

Pero array no puede ser const. Sino directamente en write(*Ptr++); reemplazar *Ptr++ por array[k][j]; En CCS no hay manera de pasar por referencia un array constante en una función.

Saludos!
Título: Re: leer algunos datos de un arrray.
Publicado por: bondadoso en 18 de Diciembre de 2011, 16:26:46
gracias suky aunque en realidad lo que quiero es hacer una funcion que segun el string que se le escriba vaya a la tabla y mande los caracteres por i2c. espero me puedas ayudar.
mas o menos algo asi:

vWriteArray(" HOLA MUNDO");

Título: Re: leer algunos datos de un arrray.
Publicado por: Suky en 18 de Diciembre de 2011, 18:57:59
En CCS eso no se puede.


Saludos!