Autor Tema: Borrar memoria 24lcxxx  (Leído 6191 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado badtzdizzy

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 234
Re: Borrar memoria 24lcxxx
« Respuesta #15 en: 07 de Septiembre de 2006, 20:33:07 »
Hola de nuevo

Pues esto es lo ultimo que he hecho
Código: [Seleccionar]
#include <18f4320.h>
#use delay(clock=3579545)
#fuses XT,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP,NOWDT
#define EEPROM_SDA  PIN_C4
#define EEPROM_SCL  PIN_C3
#use rs232(baud=9600, xmit=PIN_c6,rcv=PIN_c7)
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL, FORCE_SW)
#include <24LC512.c>

long int dir;
long int val;

main()
{
val=0;
delay_ms(50);
printf("Grabando...");
delay_ms(500);
init_ext_eeprom();
for(dir=0;dir<=65535;++dir)
{
write_ext_eeprom(dir,val);
val=val+1;
if (val>255)
{
val=0;
                                                                                                output_toggle(PIN_A1);
}
delay_ms(1);
}
//write_ext_eeprom(0,0);
//delay_ms(1);
//write_ext_eeprom(32768,127);
//delay_ms(1);
//write_ext_eeprom(65535,255);
//delay_ms(1);

delay_ms(500);
printf("Leyendo...");
delay_ms(200);
printf("Iniciando Transmision");
for(dir=0;dir<=65535;++dir)
{
printf("  %lu --> %u",dir,read_ext_eeprom(dir));
delay_ms(500);
}
//printf("   0 --> %u", read_ext_eeprom(0));
//delay_ms(500);
//printf("   32768 --> %u", read_ext_eeprom(32768));
//delay_ms(500);
//printf("   65535 --> %u", read_ext_eeprom(65535));
//delay_ms(500);

printf("Fin de la Transmision");
delay_ms(1000);
while(true)
{
}
}
Cuando utilizo lo que tengo comentado funcionó perfectamente pero cuando lo quito el programa tal cual lo muestro se tarda mucho, no se si por obvias razones o el pic esté haciendo otra cosa. De hecho coloqué un led para ver lo que pasaba y pues este sigue parpadeando. Al incluir el archivo 24LC512.c, la grabación se hace byte a byte. De todos modos voy a hacer otro programa y se los muestro.

Gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Borrar memoria 24lcxxx
« Respuesta #16 en: 07 de Septiembre de 2006, 21:13:03 »
Lo que yo entendí fue que si quiero hacer el grabado por página puedo hacerlo con hasta 128 bytes, porque despues de este valor estaría sobreescribiendo. Para este caso tendría que volver a empezar el proceso pero escribiendo desde la posición 128 verdad? En el caso de grabar byte a byte puedo hacerlo con toda la memoria, cierto?

Comenzaré con los códigos y en cuanto los termine los pongo para que me los revisen

Muchas gracias

Sí, es exactamente así como lo dedujiste.

Espero que te salga todo bien :)

Aquí estaré para echarte una mano, aunque si programas en CCS no podré ser tan "preciso" ya que no es el que yo uso pero hay mucha otra gente que si lo usa y te echarán luz donde yo oscurezca  :D
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado badtzdizzy

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 234
Re: Borrar memoria 24lcxxx
« Respuesta #17 en: 08 de Septiembre de 2006, 10:39:52 »
Gracias maunix y pues aquí seguiré preguntando y aprendiendo de los mejores. Por cierto, recuerdas lo que puse en el último código, pues cuando pongo la variable dir desde 0 hasta 65535 el pic parece que se queda grabando y nunca deja de hacerlo, lo modifiqué y ahora puse 32767 y ahora si termina de grabar y me muestra los datos. Acaso no he entendido bien y la memoria de 512 no tiene 65535 posiciones?? 

Saludos
« Última modificación: 08 de Septiembre de 2006, 12:54:28 por badtzdizzy »

Desconectado badtzdizzy

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 234
Re: Borrar memoria 24lcxxx
« Respuesta #18 en: 08 de Septiembre de 2006, 20:56:39 »
Uff despues de varios intentos he descubierto el por qué de lo que me estaba pasando, y pues creo que en el for solo puedo llegar hasta el valor 65534, alguien sabe por qué??? Segun yo es porque se está contando la localidad 0 por lo tanto de 0 a 65534 son 65535 posiciones. Espero sea esto y no esté haciendo algo mal, gracias.

Saludos
« Última modificación: 10 de Septiembre de 2006, 19:50:53 por badtzdizzy »


 

anything