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
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.