Mikroc - Problema com lógica !!!!

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mikroc - Problema com lógica !!!!

Mensagempor gilliard » 20 Fev 2009 17:41

:D Olá Pessoal !!!! :D

Galera, estou com problemas para desenvolver uma lógica, para um projeto meu, vou explicar oque eu quero.

Eu estou fazendo um sistema de alarme, onde o alarme é acionado por uma senha, ok. Até aqui eu consegui fazer normalmente, mas minha dúvida é.....

Eu queria fazer o seguinte....
Caso o usuário digite errado a senha, eu quero que todo o sistema trave por 4 minutos, como se fosse um castigo.
Se caso o usuário tentar desligar a força da central de alarme, para tentar burlar o sistema, tentando zerar a contagem dos 4 minutos, o PINO RB7 que esta ligado no positivo, ele detecta automaticamente a falta de energia, e grava oque sobrou dos 4 minutos na EEPROM.

Digamos que o código abaixo seja o meu IF ELSE

Código: Selecionar todos
if{

Se correta Exibe no LCD

SENHA CORRETA

(Essa parte já fiz )

}

else{

( Falta essa parte )

Se errado ( da o castigo de 4 minutos
e vigia o pino RB7, para caso a força
for cortada, grava na EEPROM
o restante dos 4 minutos de castigo.

}


Como posso fazer isso ???? Eu utilizo o MikroC como compilador.

Se alguem utilizar MikroC, me ajudem com o código !!!!

Desde já, muito obrigado pessoal !!!!
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor AlexsanderM » 20 Fev 2009 21:29

gilliard:

bem pidão vc neh xD Olha eu não sei como gravar dados na EEPROM, posso estar enganado mas acho que o pic só vai poder "gravar" dados da forma que vc quer na FLASH dele.

Agora me diz uma coisa... se alguém estiver tentando burlar o sistema de segurança está mal intencionado. Então por que ser bonzinho com ele guardando um dado referente ao tempo que ainda falta para completar o "castigo" :P ? Entendeu oq eu qro dizer? Se o cara quer entrar a força, faça ele esperar mesmo! Não se preocupe gravando essemonte de dados na memória e sim fazendo ele esperar e esperar.

Daí fica mais fácil:

Se vc conseguir gravar/atualizar a FLASH dele durante o funcionamento, crie uma função global que antes de mais nada analize se a senha foi digitada erradamente anteriormente.. Tipo assim:

Código: Selecionar todos
[busca pelo bit na FLASH] {A senha foi digitada errada anteriormente (antes do desligamento) ??
}

se a resposta for sim >> desvie o programa para sua rotina de castigo.. pode ser até um delay_ms(24000);

se a resposta for não >> continue com o fluxo normal do programa e pergunte a senha de acesso

E claro, crie também nesta ordem, uma rotina pra setar akela flag que diz que a senha foi digitada errada e gravar tal bit na FLASH, para que no próximo boot, esse bit possa ser lido e comparado.


Espero ter ajudado ou pelo menos te dado uma idéia, e se vc conseguir algum resultado (principalmente escrever na FLASH hehe) poste aki!!

Vlw!
Alexsander
Avatar do usuário
AlexsanderM
Bit
 
Mensagens: 17
Registrado em: 06 Out 2008 21:56
Localização: Joinville - SC

Mensagempor gilliard » 20 Fev 2009 21:42

Primeiramente gostaria de agradecer ao AlexsanderM.

E quero esclarecer que não sou pidão, apenas estou pedindo ajuda, que eu saiba, isso é um forum, foi feito para pedir ajuda !!!!

Mas pbrigado pela ajuda !!!!

Gilliard B. Santos
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor Renie » 20 Fev 2009 21:55

Olá Gilliard,

Na minha opinião, uma central de alarme não pode ter "castigo"!

Ainda mais em uma central de alarme, o usuário pode estar em
situação perigosa e precise ativar/desativar com urgência a mesma,
o nervosismo é um amigo do erro, isso pode levar a senhas erradas!

O mais usual em senhas erradas é a quantidade de tentativas, se
todas forem erradas, travar o usuário!
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor egb » 20 Fev 2009 23:25

Olá Giliard,

Tenho a mesma opnião do Renie sobre o funcionamento de uma central de alarme. Vou só pentelhar com minha opnião, mas não vou ajudar com o codigo :D mesmo porque você pediu ajuda na logica.
Suponha que seu alarme controle uma fechadura.
Primeiro seria importante que a fechadura se mantivesse fechada em caso de falta de energia.
Talvez fosse interessante ir gravando na EEPROM a quantidade de tentativas frustradas, assim, o fulano não conseguiria cortar e religar a alimentação para ter infinitas tentativas. Se atingir determinado numero de tentativas frustradas, um flag gravado na EEPROM indica que deve ser tomada uma atitude mais radical como acionar sirene ou bloquear o teclado, etc.
Ou então, como disse o Renie, pode-se utilizar usuário e senha no sistema.
egb
Bit
 
Mensagens: 12
Registrado em: 27 Mar 2007 15:05


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x