TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: Fernando Zonly en 26 de Mayo de 2018, 15:06:37

Título: Reescribir "Epprom"
Publicado por: Fernando Zonly en 26 de Mayo de 2018, 15:06:37
Buenos días, estoy trabajando una puerta con teclado matricial 4x4 y lcd, tiene como base una contraseña, con la que puedo entrar. El problema surge cuando quiero rescribir la contraseña, no sé si este haciendo algo mal con la instrucción write_eeprom();
¿Cómo podría hacerlo? (Entorno ccs, pic18f4450)
Parte específica del programa:
while(n<=0)
{
k=kbd_getc();
if(k!=0)
{
dato[n]=k;
write_eeprom(0xF0000,k);
n++;
lcd_gotoxy(n,2);
lcd_putc('*');
delay_ms(20);
}
}
while(n<=1)
{
k=kbd_getc();
if(k!=0)
{
dato[n]=k;
write_eeprom(0xF00001,k);
n++;
lcd_gotoxy(n,2);
lcd_putc('*');
delay_ms(20);
}
}
while(n<=2)
{
k=kbd_getc();
if(k!=0)
{
dato[n]=k;
write_eeprom(0xF00002,k);
n++;
lcd_gotoxy(n,2);
lcd_putc('*');
delay_ms(20);
}
}
while(n<=3)
{
k=kbd_getc();
if(k!=0)
{
dato[n]=k;
write_eeprom(0xF00003,k);
n++;
lcd_gotoxy(n,2);
lcd_putc('*');
delay_ms(20);
}
}
while(n<=4)
{
k=kbd_getc();
if(k!=0)
{
dato[n]=k;
write_eeprom(0xF00004,k);
n++;
lcd_gotoxy(n,2);
lcd_putc('*');
}
}
Adjunto el archivo completo, por cualquier cosa, gracias.
Título: Re:Reescribir "Epprom"
Publicado por: Robert76 en 26 de Mayo de 2018, 23:07:09
Hola, porque repites cada subrutina por cada tecla pulsada?
Debes hacer una única subrutina, que pueda registrar cada dato de la contraseña , con la posibilidad de que si hay un error permita anular y volver a escribir.
Sólo tienes que registrar cada dato en una variable array. Luego de ingresada toda la contraseña, guardas en una EEPROM, de una sola vez.
Título: Re:Reescribir "Epprom"
Publicado por: KILLERJC en 27 de Mayo de 2018, 16:44:25
Código: C
  1. write_eeprom(0xF00004,k);

La direccion de la EEPROM va de 0 a 0x800, creo que estas intentado guardar en la FLASH, lo cual no tiene sentido.