TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: WSalas en 22 de Junio de 2009, 12:00:26

Título: Como escribir una constante char en una EEPROM
Publicado por: WSalas en 22 de Junio de 2009, 12:00:26
Hola, quisiera escbrir una constante char en la eeprom interna del Pic, como puedo hacer?, por que la forma que lo estoy haciendo no funciona

Citar
int i = 0;

char name[] = "Flux-564330";

void main() {
     for (i = 0; i < 12; i++){
          write_eeprom(i, name);
          }
        }
Título: Re: Como escribir una constante char en una EEPROM
Publicado por: MLO__ en 22 de Junio de 2009, 12:02:44
Hola.

Código: C#
  1. for(i=0;i<12;i++)
  2.   eeprom_write(i,name[i]);

deberia funcionar.

Saludos
Título: Re: Como escribir una constante char en una EEPROM
Publicado por: WSalas en 22 de Junio de 2009, 12:37:10
Hola Mlo_, ya lo he intentado de esa forma,  no tengo problemas al compilar, pero en la memoria eeprom interna del pic solamente se escribe puros ceros!!!!
Título: Re: Como escribir una constante char en una EEPROM
Publicado por: migsantiago en 22 de Junio de 2009, 12:43:25
Hola Mlo_, ya lo he intentado de esa forma,  no tengo problemas al compilar, pero en la memoria eeprom interna del pic solamente se escribe puros ceros!!!!

Hola, ¿cómo verificas que se escriben puros ceros?

La forma más fácil de verificar que la eeprom esté bien grabada es leer el pic con tu programador y checar la sección de la eeprom.

¿Qué pic estás usando? Algunos pic no tienen memoria eeprom interna.
Título: Re: Como escribir una constante char en una EEPROM
Publicado por: WSalas en 22 de Junio de 2009, 13:31:54
Hola migsantiago, estoy usando el hyperterminal para verificar la escritura de la memoria eemprom, aqui esta mi codigo

Citar
#include <16f877a.h>                         
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=20M)                     
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

int i = 0;

char name[] = "Flux-564330";


void main() {

     for (i = 0; i < 12; i++){
          write_eeprom(i, name);
          }
       
     delay_ms(200);
     for (i = 0; i < 12; i++){
          printf ("%c",read_eeprom(i));
          }
       
}
Título: Re: Como escribir una constante char en una EEPROM
Publicado por: micro_cadaver en 22 de Junio de 2009, 14:00:31
hasta en el proteus sale error... ya me pico la curiosidad. verificare que encuentro pues al parecer esta correcto.
Título: Re: Como escribir una constante char en una EEPROM
Publicado por: micro_cadaver en 22 de Junio de 2009, 14:02:52
#include <16f877a.h>                          
#fuses HS,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=20000000)                      
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

int i = 0;

char name[] = "Flux-564330";


void main() {

     for (i = 0; i < 12; i++){
          write_eeprom(i, name );
          }
        
     delay_ms(200);
     for (i = 0; i < 12; i++){
          printf ("%c",read_eeprom(i));
          }
          
   while(1);          
        
}

le agregue lo que comento MLO y funciono en la simulacion.
incluso le puse su virtualterminal y salia la cadena de mensaje
Título: Re: Como escribir una constante char en una EEPROM
Publicado por: WSalas en 22 de Junio de 2009, 14:32:40
hola microcadaver, si tines razon, si funciona, parece que me habia equivaocado en una sentencia gracias