Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

reset soft du 16f84



  1. #1
    maho

    Question reset soft du 16f84


    ------

    A a t'il un moyen de reseter le pic 16f84 avec des instructions assembleur ? et comment vider la pile des adresses de sous-programmes ?

    Merci...

    -----

  2. #2
    DavidDB

    Re : reset soft du 16f84

    Salut,
    Une solution toute simple :
    Goto adr0 où adr0 est le vecteur de reset.
    Quand tu veux faire le reset, tu fais simplement la ligne ci-dessus.
    Plus parlant :
    ORG 0
    adr0 goto init ; aller à l'initialisation du programme
    ORG 5
    init XXXXXXX; début programme

    David.

  3. #3
    maho

    Re : reset soft du 16f84

    Haaa d'acoorrrd... donc le fait que pcl=0x00 ça reset le PIC... donc ça vide la pile d'adresse de s-programmes ?

  4. #4
    DavidDB

    Re : reset soft du 16f84

    Je ne suis pas certain que la pile soit vidée avec cette manière de procéder. Cependant tu connais le nombre de sous programmes utilisé et il est facile d'ajouter par sécurité le nombre de return correspondant au nombre de sous-programmes pour vider "manuellement" la pile, avant d'aller au vecteur de reset.(dans le pire des cas tu perds le temps de huit insrtuctions)

    David.

  5. A voir en vidéo sur Futura
  6. #5
    Bigonoff

    Re : reset soft du 16f84

    Salut
    ------

    Un 'goto 0x00" n'est pas du tout un reset du pic.

    Faire des "return" en cascade est impossible, car au premier return rencontré, on quitte l'endroit où on était (par définition), et donc on ne sait pas exécuter le "return" suivant.

    De plus, il n'y a pas que la pile. Tous les autres registres sont concernés par un reset.

    Il existe des méthodes barbares pour resetter un 16F84, en manipulant le prédiviseur du watchdog, et donc en fait en exploitant un bug connu.

    Mais ce n'est pas élégant du tout, et rien ne dit que ce sera reproductible sur les révisions futures (probablement que oui, mais pas certain).

    Sinon, une méthode simple, peu rapide, mais qui fonctionne, c'est d'activer le watchdog et de faire une boucle sans fin genre

    loop
    goto loop

    Ainsi, tu provoques le débordement du watchdog et tu resettes le pic.
    Attention cependant que le reset par watchdog n'est pas équivalant au reset par MCLR pour tous les registres.

    Il y a encore une autre méthode "barbare", mais qui fonctionne.
    Tu sacrifies une pin, que tu relies à MCLR.
    Tu relies MCLR à Vdd via une résistance de pullup.

    Il te suffit de faire passer ta pin en sortie et d'envoyer un niveau 0 pour faire un reset.

    Note que les 18F disposent d'une instruction "reset", mais pas les 16F.
    La meilleure méthode est encore de structurer correctement son programme pour éviter de devoir faire un reset.

    A+
    Bigonoff
    Vive l'Internet libre

  7. #6
    maho

    Re : reset soft du 16f84

    Merci pour toutes ces réponse..

Discussions similaires

  1. le reset ...et ses secrets
    Par traxxa dans le forum Électronique
    Réponses: 0
    Dernier message: 23/05/2007, 20h43
  2. reset
    Par mastermix dans le forum Électronique
    Réponses: 6
    Dernier message: 04/05/2007, 13h57
  3. Reset de 2 PIcs
    Par Magneau dans le forum Électronique
    Réponses: 3
    Dernier message: 30/10/2006, 09h40
  4. patte mclr ou reset
    Par laatysha dans le forum Électronique
    Réponses: 1
    Dernier message: 28/05/2006, 14h49
  5. Reset Webcam
    Par Ravaner dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 25/03/2006, 10h46
Découvrez nos comparatifs produits sur l'informatique et les technologies.