je trouve une probleme d'obtenir une procédure de changement de mot de pass (pour par exemple systeme d'alarme ) en mikro c en utilisant eeprom
est ce que vous pouvez m 'aider !!!!!
-----
je trouve une probleme d'obtenir une procédure de changement de mot de pass (pour par exemple systeme d'alarme ) en mikro c en utilisant eeprom
est ce que vous pouvez m 'aider !!!!!
Bonsoir à toi aussi mira1991, et à tout le groupe
Je crains que, si tu ne donnes pas plus de détails sur ce que tu cherches à savoir, tu n'obtiennes pas de réponse utilisable. Le contexte exact a besoin d'être connu.
PS: la charte du forum précise explicitement que l'on doit dire bonjour en arrivant et merci en partant.
Bien entendu, ces simples formalités ne font nullement avancer le schmillblick et n'y prétendent sûrement pas. Pourtant, on remarque que très souvent, cela attire plus de réponses pertinentes et bienveillantes.
Je pense qu'il cherche un soft tout fait en "C" pour créer un mot de passe sur son montage et que le mot de passe soit sauvegardé en EEPROM .
exactement
je trouve une difficulté dans l ecriture et la lecture sur EEPROM du pic 16f877 et comment je peux ecrire cette procédure en c
Bonsoir,
vous pouvez tout simplement utiliser la fonction toute faite de mikroC:
Prévoyez un temps entre chaque écriture de 20ms par exemple.Code:EEPROM_write(0x20, 0x15); // écriture de 0x15 à l'adresse 0x20
le raisonnement de changement de mot de passe est trés difficile specifiquement si je veux raisoner sur L EEPROM d'écraser l ancien mot de passe et d enregistrer dans une confirmation et ensuite dans le nouveau mot de passe !!!!
Si tu pouvais faire un effort pour exprimer ta demande ! C'est incompréhensible .
BONJOUR & tous le membre de groupe:
initialement j ai ecrit dans le code une mot de passe quelconque puis si je veux changer cette mot de passe j accede au procédure changement de mot de passe qui se ressemble a ce que se passe lors que on change le mot de passe dans le telephone:
1-l ancien mot de passe
2-nouveau mot de passe
3-confirmation de mot de passe
BONJOUR
J ai essayé et violà mon code qui n'a pas fonctionner de la manière désirable
Code:/* void switchpswrd() { j=0; lcd_cmd(_lcd_clear); lcd_out(1,1,"enter current password"); lcd_cmd(_lcd_clear); a=password(); if(a==1) { do { lcd_cmd(_lcd_clear); lcd_out(1,1,"enter new password"); lcd_cmd(_lcd_clear); // for(i=1;i=4;i++) //{ do { kp = Keypad_Key_Click(); } while (!kp); switch (kp) { case 3: kp=3; break; case 2: kp = 48; break; // 0 case 5: kp = 49; break; // 1 case 6: kp = 50; break; // 2 case 7: kp = 51; break; // 3 case 9: kp = 52; break; // 4 case 10: kp = 53; break; // 5 case 11: kp = 54; break; // 6 case 13: kp = 55; break; // 7 case 14: kp = 56; break; // 8 case 15: kp = 57; break; // 9 default: break; } ; Lcd_chr(2, i+7, kp); npw[j]=kp; delay_ms(200); Lcd_chr(2, i+7, '*'); delay_ms(500); // k[j]=npw[j]; j++; lcd_cmd(_lcd_clear); lcd_out(1,1,"confirm password"); a=password(); if(a==1) lcd_out(1,1,"password changed!"); }while(a!=1); } } */
Dernière modification par gienas ; 28/01/2014 à 11h40. Motif: Ajouté les balises code obligatoires pour les programmes
Bonjour!
Quelques remarques générales:
Le gros problème de votre code, c'est que c'est le foutoir complet. Pas de commentaires,
il n'y a en gros que vous qui pouvez comprendre ce que vous avez fait, et de plus si
vous reprenez votre code dans 1 mois, vous ne le comprendrez plus vous même.
Exemple: La fonction password() semble être une fonction qui compare deux mots de passe.
Dans ce cas, pourquoi ne pas l'appeler compare_password ou une variante qui dit
clairement ce qu'elle fait?
Ensuite, vous avez une variable a. C'est bien, mais c'est quoi? Si c'est un code d'erreur,
pourquoi ne pas l'appeler error? Ou compare_result dans le cas d'une comparaison?
Par exemple dans 1 mois, si vous lisez if(a == 1), vous devrez rechercher ce qu'était
a, et pourquoi vous le comparez à 1.
Si au lieu de cela, vous appelez votre variable compare_result et qu'au lieu de 1 vous
définissez #define COMPARE_OK 1, et si dans un mois, vous relisez:
if(compare_result == COMPARE_OK), alors vous comprendrez immédiatement sans avoir
à fouiller partout dans le code. C'est ce que l'on appelle du code auto-commenté.
De plus, il serait préférable d'avoir une approche un peu plus structurée, de ne pas
tout faire dans une seule fonction, mais de découper en autant de fonctions que nécessaire.
Une "bonne" fonction mène à bien une action unique, un bloc unique de votre algo si
vous en avez fait un.
Exemple:
- Faire une fonction pour lire le mot de passe dans l'EEPROM, par exemple read_passwd();
- Faire une fonction pour l'écrire, par exemple write_passwd();
- Faire une fonction pour acquérir le mot de passe au clavier, par exemple get_key_passwd();
- Faire une fonction pour comparer les mots de passe, par exemple compare_passwd();
À partir de là, comme disait Daudet, ben y'a pus qu'à:
- Lire l'EEPROM
- Acquérir un mot de passe
- Comparer (retour une ligne plus haut un certain nombre de fois)
- Si c'est bon, lire un mot de passe
- Lire le 2ème,
- Comparer, etc, etc...
Pascal