Após dar uma vista pelo código acho que tens de ver as coisas de forma diferente...
Comparar cada caracter da password sempre que é digitado não é boa ideia e provavelmente é isso que te está a prender...
Porque é que não fazes algo assim:
char input[6]; //isto é para testar.
char key = keypad.getKey();
if(key != NO_KEY) {
if (key == '#') { //sequência para meter pass...
imprime_coisas_no_lcd();
while (contador <6) {
key = keypad.getkey(); //vamos assumir que a pass pode ter todos os caracteres...
if (key != NO_KEY) {
input[contador++] = key;
}
} //end while.
if (strncmp(input, senha, 6) == 0) {
Abre_a_porta;
} else{
Mensagem_de_erro
}
}//end if
}
Agora a mecânica seria a mesma para guardar a pass... para mexeres na EEPROM fazes assim.
#include <avr/eeprom.h>
//imagina que tinhas a pass no vector input
for (int i=0; i<6; i++) {
eeprom_write_byte(i, input[i]); //escreve nos endereços 0 a 5 da EEPROM.
}
No início do programa terias de ir buscar a pass à eeprom...
#include <avr/eeprom.h>
for (int i=0; i<6; i++) {
senha[i] = eeprom_read_byte(i); //escreve nos endereços 0 a 5 da EEPROM.
}
Agora um aviso...
A tua sorte é que eu vi a mensagem pessoal após ter colocado isto aqui. Tivesse eu visto a tua mensagem primeiro e não teria escrito nada aqui. E a razão para isso é que:
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.
Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).
Esta passa a ser a minha assinatura para que todos percebam... e aproveito para te avisar que o teu nome está boqueado de me enviar mensagens pessoais novamente.
Passa bem.