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

Au SECOURS problème 16f84A et PORTA 1



  1. #1
    oxedgar

    Exclamation Au SECOURS problème 16f84A et PORTA 1


    ------

    Bonjour a vous collègues électroniciens...

    Cela fait maintenant plusieurs jours que je butte sur mon problème. Je vous explique:

    Avec un 16f84a, j'ai créé un petit circuitqui commande une led et un relais en fonction d'une programmation choisie par l'utilisateur (microswitch sur le portb).

    Mon circuit doit fonctionner en 4 modes (sélectionnables): Temporisé, retardé, Retardé-temporisé et Cadencé à 5 Hz pendant un temps défini par l'utilisateur.

    Mes trois premiers modes fonctionnent correctement, mais j'ai le problème avec la cadence. Il me compte les premières 5 sec. et il s'arrète brusquement lorsque il arrive a l'instruction bcf porta,1 je ne trouve pas de solution pour qu'il continue.

    Ah oui, toutes mes valeurs utiles au comptage de tempts sont stockées en EEPROM cela me permet une maintenance simple si je doit modifier une durée.

    Voici mon code pour la cadance:
    ;***************************** ******** 4 Temporisé Cadencé
    Reset_Cadencé
    RelaisOff ; On désactive le relais
    LedOff ; On désactive la led

    Cadencé
    btfsc BoutonProg ; Entrée en prog?
    Goto Lecture_configurateur_tempo ; recommance depuis le début
    Attend_départ_Cadencé
    LedOff
    btfss Bouton ; teste si le départ est donné si non
    GOTO Cadencé ; on recommance
    LedOn ; On active la led

    ; Active le relais 5sec.
    Cadence_5sOn
    RelaisOn
    Décrément_cadence
    decfsz Cadence_1, f ; on décrémente Cadence_1 si il vaut 0 on saute
    Goto Décrément_cadence ; si non on recommance
    nop
    btfsc BoutonReset ; teste si le bouton Reset est pressé si non
    GOTO Reset_Cadencé ; on ca à Reset_Cadencé
    decfsz Cadence_2, f ; on décrémente Cadence_2 si il vaut 0 on saute
    Goto Décrément_cadence ; si non on recommance
    decfsz Cadence_3, f ; on décrémente Cadence_3 si il vaut 0 on saute
    Goto Décrément_cadence ; si non on recommance

    ;Précision
    movlw 0x96 ; on met 150 dans w
    movwf Cadence_2 ; on met w dans cadence_2
    Précision
    decfsz Cadence_1, f ; on décrémente Cadence_1 si il vaut 0 on saute
    Goto Précision ; si non on recommance
    decfsz Cadence_2, f ; on décrémente Cadence_2 si il vaut 0 on saute
    Goto Précision ; si non on recommance

    Lecture_de_cadence_en_EE ; On lit la Cadence fixe de 5sec.
    decfsz Compteur, f ; on décrémente Compteur si il vaut 0 on saute
    goto Cadence_5sOff ; si non on va à cadence_off
    goto stop ; si oui on va à stop

    ; Désactive le relais 5 sec
    Cadence_5sOff
    RelaisOff
    Cadence_Off
    decfsz Cadence_1, f ; on décrémente Cadence_1 si il vaut 0 on saute
    Goto Cadence_Off ; si non on recommance
    nop
    btfsc BoutonReset ; teste si le bouton Reset est pressé si non
    GOTO Attend_départ_Cadencé ; on recommance
    decfsz Cadence_2, f ; on décrémente Cadence_2 si il vaut 0 on saute
    Goto Cadence_Off ; si non on recommance
    decfsz Cadence_3, f ; on décrémente Cadence_3 si il vaut 0 on saute
    Goto Cadence_Off ; si non on recommance
    Lecture_de_cadence_en_EE ; on lit la Cadence fixe de 5sec.

    decfsz Compteur, f ; on décrémente Compteur si il vaut 0 on saute
    goto Cadence_5sOn ; si non on va à Décrément_cadence
    goto stop ; si oui on va à stop


    stop
    LedOff
    RelaisOff
    Lecture_de_cadence_en_EE ; On lit la Cadence fixe de 5sec.
    Lecture_du_compteur ; On lit le compteur de 5 sec.

    UN GRAND MERCI A CEUX QUI M'AIDERONS.

    -----

  2. Publicité
  3. 📣 Nouveau projet éditorial de Futura
    🔥🧠 Le Mag Futura est lancé, découvrez notre 1er magazine papier

    Une belle revue de plus de 200 pages et 4 dossiers scientifiques pour tout comprendre à la science qui fera le futur. Nous avons besoin de vous 🙏 pour nous aider à le lancer...

    👉 Je découvre le projet

    Quatre questions à explorer en 2022 :
    → Quels mystères nous cache encore la Lune 🌙 ?
    → Pourra-t-on bientôt tout guérir grâce aux gènes 👩‍⚕️?
    → Comment nourrir le monde sans le détruire 🌍 ?
    → L’intelligence artificielle peut-elle devenir vraiment intelligente 🤖 ?
  4. #2
    freepicbasic

    Re : Au SECOURS problème 16f84A et PORTA 1

    ton prog n'est pas complet
    Et il ressemble beaucoup à un prog spaghetti...
    c'est assez indigeste LOL.

    il faut utiliser des "call" !
    mettre des tabulations afin de structurer.

    les "goto stop"
    avec une procédure "stop" sans fin sont suspects...
    mais comme c'est pas complet...
    A+, pat

  5. #3
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    Merci de ton aide je post ici le code en fichier joint.
    Fichiers attachés Fichiers attachés

  6. #4
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    Personne pour m'aider?

  7. A voir en vidéo sur Futura
  8. #5
    Shaiton

    Re : Au SECOURS problème 16f84A et PORTA 1

    Bonjour,
    désolé je ne connais pas (encore) l'assembleur,
    c'ets juste pour remarquer qu'il existe la balise 'code' permettant d'afficher du code AVEC des espaces...
    pas grand monde n'y pense, mais c'est beaucoup plus lisible (et plus rapide qu'un fichier joint pour de faible lignes).

    Cordialement
    Shaiton
    Le Geek Sportif !

  9. #6
    freepicbasic

    Re : Au SECOURS problème 16f84A et PORTA 1

    Quelle valeur y a t il dans compteur
    Conf_Tempo = 0xd
    le contenu est 0x18
    on ajoute 0x16
    en dehors de la zone EEPROM définie

    Code:
                Movf 	Conf_Tempo, W	; on met Conf_Tempo dans Pointeur
                movwf	Pointeur		; on met w dans Pointeur
                movlw	0x16			; on met 22 dans w
                addwf	Pointeur, f		; on additionne w dans Pointeur
                LectureEEPROM			; On lance la macro de lecture en EEPROM
                Movwf	Compteur		; on met le résultat de la lecture dans Compteur

    Ces 2 dernière lignes de codes ne sont jamais accessible !
    Code:
    	Goto	Temporisé								; on va à Temporisé
    	btfsc	BoutonReset								; teste si le bouton Reset est pressé si non			
    	GOTO	Reset_temporisé							; on va a reset_temporisé
    A+, pat

  10. Publicité
  11. #7
    marmotte

    Re : Au SECOURS problème 16f84A et PORTA 1

    De plus des labels avec des accents (é è à) ne fonctionnent a ma connaissance pas (en tout cas il ne faut pas les utiliser pour etre sur)

    A+

  12. #8
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    Merci, je vais essayer de supprimer tous les accents ce weekend.
    je te tiens au courant.

  13. #9
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    J'ai sur le portB un microswitch sur toutes les entrées, ils permettent a l'utilisateur de pouvoir programmer les tempos et le mode de fonctionnement.
    Il y a un peut plus haut dans le code, une procédure qui lit l'état du portB.
    Juste plus bas j'ai tappé le code qui permet de garder que les 4 bits du portB qui correspondent à la temporisation programmée par l'utilisateur.
    Comme toutes mes valeurs sont stockées dans l'eeprom j'utilise le registre pointeur pour retouver la valeur que j'y ai stocké. J'ai stocké mes valeurs en eeprom à partir de l'addresse 16h jusqu'à 25h.
    Pour que je soit sur de pointer sur la bonne adresse, je lit les 4 premiers bits du portB et je les additionnent à 16h et je sauve le résultat dans le pointeur. Je lit ensuite l'eeprom et je sauve le résultat dans le compteur. Sa peut parettre un peut "Mr Bricolle" car c'est le premier firmware que je crée. J'aurrais peut-être du pratiquer les exemples de cours de Maitre Bigonoff au lieu de juste les lire. (Je l'avoue, j'ai pas fait les exercices). J'espère avoir été précis. je vais essayer de mettre une valeur à l'adresse 2E pour voir si effectivement il pointe hors plage définie. Je n'y avait pas pensé. Merci
    Je tiens à préssiser que j'ai proteus pro avec l'émulateur de code microchip et que le code fonctionne comme il doit sur simulation c'est pour sa que je ne comprend pas ce disfonctionnement. Pour terminer, je vais effectivement supprimer ces 2 dernière lignes, j'ai oublié de les enlever! Encore merci pour ton éclairage.

  14. #10
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    Hello freepicbasic,

    J'ai fait mes tests, suprimé tous les accents, essayé avec une valeur en 2E mais rien n'y fait.

    Je ne parviens pas a faire cadencer mon relais a une fréquance de 5 Hz pendant le temps programmé.

    Je ne sais plus quoi faire.

  15. #11
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    Plus personne???

  16. #12
    obi76
    Modérateur*

    Re : Au SECOURS problème 16f84A et PORTA 1

    pour la programation des pics, je te suggère (après c'est juste un avis perso) d'utiliser mikrobasic mikroc ou mikropascal, c'est peut etre moins optimisé mais je pense pas que t'ai spécialement besoin de faire directement de l'ASM pour ce genre d'application.

  17. Publicité
  18. #13
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    je ne connait pas ces languages. l'avantage avec l'asm, c'est que c'est facile avec Bigonoff.

  19. #14
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    Peux tu me donner des adresses de tutos en francais? sur le mikrobasic?

  20. #15
    obi76
    Modérateur*

    Re : Au SECOURS problème 16f84A et PORTA 1

    heu j'ai pas trouvé (enfin je me suis pas attardé, faut que je parte au boulot). Si quelqu'un a ça, sinon je regarderrai ce soir ^^

  21. #16
    oxedgar

    Re : Au SECOURS problème 16f84A et PORTA 1

    Je viens donner des nouvelles... sa ne fonctionne toujours pas...
    J'ai refait toute la prog avec flowcode et j'ai le meme problème.
    est il possible que l'électronique autours puisse faire un plantage aprés mon premier cycle de 5 sec?

  22. #17
    freepicbasic

    Re : Au SECOURS problème 16f84A et PORTA 1

    tu as corrigé ?
    montre le code ...
    A+, pat

  23. #18
    oxedgar

    Smile Re : Au SECOURS problème 16f84A et PORTA 1

    Hello, J'ai trouvé la solution.
    En fait il y avait un courant de fuite sur le transistor qui commande le relais.
    j'ai mit une diode à la sortie du PIC et sa fonctionne. j'était loin de me douter que c'était sa!
    Etonnament, pour mon premier montage "programmable" je suis assez contant du résultat car mon code était juste en entier.
    Merci a tous de votre aide. Salutations

  24. Publicité

Discussions similaires

  1. probleme avec un pic 16f84a
    Par freinsch dans le forum Électronique
    Réponses: 6
    Dernier message: 29/07/2007, 21h32
  2. Programmation MC 68HC11 PortA Potentiometre
    Par synapsus62 dans le forum Électronique
    Réponses: 3
    Dernier message: 14/02/2007, 19h34
  3. [PIC]PORTA en entrée?
    Par laminttikia dans le forum Électronique
    Réponses: 11
    Dernier message: 06/01/2007, 16h10
  4. Problème de démarrage, au secours!
    Par brunoM dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 12/10/2004, 23h01
  5. Au secours ! Problème de puissance électrique
    Par pepinou dans le forum Physique
    Réponses: 0
    Dernier message: 25/04/2004, 18h08
Découvrez nos comparatifs produits sur l'informatique et les technologies.