Autor Tema: Reescribir "Epprom"  (Leído 3381 veces)

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

Desconectado Fernando Zonly

  • PIC10
  • *
  • Mensajes: 2
Reescribir "Epprom"
« 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.

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 577
Re:Reescribir "Epprom"
« Respuesta #1 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.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Reescribir "Epprom"
« Respuesta #2 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.