Autor Tema: Matrix de 8x8 LEDs y 24C256 en CCS por software  (Leído 21912 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #30 en: 19 de Diciembre de 2007, 15:44:22 »
Hola Aitopes, yo ando en un proyecto similar, aunque más sencillo. ¿Podrías decirme o mostrar cómo has soldado los leds? ¿has tenido que recurrir a puentes?

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #31 en: 19 de Diciembre de 2007, 15:46:42 »
Hola Jesus!

Si, montones de ellos. Todo por no hacer la PCB a doble faz.

Si quieres darte una vuelta por mi web vas a encontrar el PCB y fotos de los puentes. De paso, aprendes lo que es un trabajo hecho a "lo que salga". :)

Un abrazo!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #32 en: 19 de Diciembre de 2007, 17:10:04 »
Aiopes si quieres leer la Eeprom mas rapido te recomiendo usar su metodo de "Sequential Read". Q dandole un vistaso al datasheet seria algo asi:

Código: [Seleccionar]
int8 dato[];
int16 direcion_inicial = 0, direcion_final = 100;

i2c_start();
i2c_write(0xa0);

i2c_write(direcion_inicial >> 8);
i2c_write(direcion_inicial);

i2c_start();
i2c_write(0xa1);

for (direcion_inicial; direcion_inicial <= direcion_final; direcion_inicial++)
{
     dato[direcion_inicial] = i2c_read(0);
}

i2c_stop();

No lo e probado pero deberia funcionar  :mrgreen:


salu2 8)


« Última modificación: 19 de Diciembre de 2007, 17:12:51 por jeremylf »

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #33 en: 19 de Diciembre de 2007, 17:16:23 »
Hola jeremylf!

Muy buena idea. Obviamente es mi primera vez en CCS con las EEPROM, y tambien la primera vez en que el tiempo es crucial.

Ya es tarde por hoy, pero mañana mismo me pongo a experimentar con el codigo que pasaste. Es una buena idea el leer todos los datos "de un tiron", sin hacer todos los pasos byte por byte.

Mañana te cuento como me ha ido.

GRACIAS!    :mrgreen:
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado jfh900

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #34 en: 19 de Diciembre de 2007, 20:47:23 »
¿Y no puedes leer de la eeprom los 20 caracteres de una tacada para luego ir mostrándolos?, en otras palabras, vuelca el contenido de la eeprom a la ram y trabaja con esta última.

Eso ya te lo dijo Manolo hace unos cuantos post más arriba, pero es que no le haces caso  :D :D :D :D

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #35 en: 19 de Diciembre de 2007, 21:07:08 »
Es que soy un cabeza dura.....hasta recien, para mi leer los 20 caracteres era lo que yo hacia....ja ja ja ja!

Ahora lo he pillado.

De todos modos, quizas lo mas eficiente y elegante sea realizar las lecturas en los "tiempos muertos" que hay entre la visualizacion de una fila y la siguiente. Si tengo 8 filas, puedo leer 2 o 3 caracteres de la EEPROM durante los ms que la fila esta iluminada....

Organizando todo con algunos flags deberia andar. Eso va a ser mi trabajo de mañana (ademas del curro de verdad, claro!).

Saludos....y gracias!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #36 en: 21 de Diciembre de 2007, 02:22:59 »
No entiendo porq tienes q hacer 21 lecturas! oO!


salu2 8)

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #37 en: 21 de Diciembre de 2007, 07:49:47 »
Hola!

No entiendo porq tienes q hacer 21 lecturas! oO!

Es que estoy intentando determinar si puedo usar una EEPROM para almacenar los datos a mostrar en un cartel mucho mas grande, entiendes?

Si el cartel en lugar de ser de 8x8 es de 128x16, por ejemplo, tendria que hacer 32 lecturas de caracteres de 8x8 por pantalla....se entiende?

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #38 en: 21 de Diciembre de 2007, 16:47:53 »
Me refiero a esto:
Código: [Seleccionar]
   for (aux=0;aux<=20;aux++){  //Este bucle simula las 20 lecturas......
      for (i=0;i<=7;i++) {
           tabla[i] = read_ext_eeprom ((long int)imagen*9+i); //Esta es la "cuenta" que menciono en el post.
       }

Estas haciendo 20 veces algo que no va a cambiar, porq despues del 2do for la variable i vuelve a 0 y segun veo, la variable "imagen" no cambiara hasta llamar denuevo a esa funcion dandole otro valor. Bueno no ntiendo tu metodo pero si de ahi viene la demora te aconsejo a q cambies de metodo ya q se te hara eterno. Prueba como te dije (y manolo tb) en obtener todos los valores de la Eeprom de una sola lectura y trabajas ya con ello. Es mejor asi.

suerte.
salu2 8)

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #39 en: 21 de Diciembre de 2007, 18:16:11 »
Hola amigo!
Si, estoy al corriente de que leo 20 veces LA MISMA zona de la EEPROM. Aun no me hago tiempo de hacer mas pruebas, supongo que hasta el martes o miercoles esto seguira colgado, entre el trabajo y la farra de fin de año se me han agotado las horas libres. ;)

Un abrazo.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

alexdjpic

  • Visitante
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #40 en: 27 de Noviembre de 2008, 21:17:28 »
Saludos ¨aitopes¨ podrias explicarme la forma en que debo hacer la lectura de la eeprom desde el pic. Estoy haciendo esta matriz y quisiera saber como le establezco la información a la Eeprom. Y a que se refiere esta linea de la progrmación:

int fila[8]={254,253,251,247,239,223,191,127};

Lo demas lo estoy captando pues esta escrito en hexadecimal, lo paso a binario y dibujo mi matriz dando como resultado los caracteres. Me podrias pasar un ejemplo con la letra ¨A¨ y yo mismo empezar a escribir en la matriz. Y darle un efecto a esta letra, ó simplemente que pase de derecha a izquierda y asi ir implementando mas letras hasta lograr alguna frese. Saludos!!

alexdjpic

  • Visitante
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #41 en: 03 de Diciembre de 2008, 18:02:24 »
Hola amigos de TODOPIC. Los molesto preguntandoles a que se refieren estos renglones, forma parte del programa en C de un ejemplo que se encienden Led por led en la matriz 8x8. Estoy decifrando por renglon que es lo que significan para mi aprendizaje, espero me ayuden. Estos son los renglones que quiero me ayuden a traducir.

void fConfigurar_puertos (void);
void fRDD_send_data0 (void);
void fRDD_send_data1 (void)

y estos que estan casi al final.

PORTB = (PORTB << 1 )+1 ;

Solo tengo entendido que desplazo el valor de PORTB una posición a la izquierda pero el +1 que me indica?
Les agradezco su atención y espero sus respuestas. Saludos!

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #42 en: 03 de Diciembre de 2008, 18:08:58 »
Hola.

Es pora mantener siempre el 1 al incio de la variable.

Si el valor de PORTB es 0b11111110 y le hacemos: PORTB<<1, el nuevo valor de PORTB seria 0b11111100. Al sumarle 1 quedaria asi: 0b11111101.

Se puede usar tambien las funciones shift_left() y/o shift_right()

Saludos
El papel lo aguanta todo

alexdjpic

  • Visitante
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #43 en: 03 de Diciembre de 2008, 18:31:57 »
Ok, gracias amigo ¨MLO¨ lo entendí sin mas dudas, esto mantendra solo una salida en PORTB, y no mantendra apagadas dos, ó tres filas al mismo tiempo.
Y los estos renglones que me dicen?

void fConfigurar_puertos (void);
void fRDD_send_data0 (void);
void fRDD_send_dat1 (void);


Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Matrix de 8x8 LEDs y 24C256 en CCS por software
« Respuesta #44 en: 03 de Diciembre de 2008, 18:35:12 »
Hola.

Esos renglones son la declaracion de los prototipos de las funciones que se van a usar en el programa principal, si buscas al final del codigo del programa principal, encontraras las mismas funciones pero ya definidas.

Saludos
El papel lo aguanta todo