pic: afficher registre w
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

pic: afficher registre w



  1. #1
    Jack
    Modérateur

    pic: afficher registre w


    ------

    bonjour,

    je ne suis pas un grand amateur de pic, mais en ce moment je n'ai pas la choix.

    Je n'arrive pas à faire un truc tout bête dans mplab: afficher le registre w.

    J'ai bien essayé dans la fenêtre watch qui me propose d'ajouter le symbole w, mais ça m'affiche restricted memory dans la zone value.

    Merci.

    -----

  2. #2
    Jack
    Modérateur

    Re : pic: afficher registre w

    Bon, j'ai trouvé.

    Comme quoi, il suffit de poser la question après avoir cherché une heure pour trouver la solution 5 minutes après.

    En fait w s'appelle WREG dans mplab.

    Pourquoi faire simple ....

  3. #3
    Jack
    Modérateur

    Re : pic: afficher registre w

    vous pouvez toujours m'aider.

    Je veux inverser l'état d'une led connectée sur le bit 0 de GPIO. Le pic est un 12F629.

    Code:
    	movlw	b'000001'
    	xorwf	GPIO,1		;Inverse l'état de la led
    Pourquoi ça ne fonctionne pas? Je suis pourtant dans la bonne banque et le bit 0 est bien configuré en sortie.

    Merci pour vos suggestions

  4. #4
    RISC

    Re : pic: afficher registre w

    Jack,

    Je pense que ton PB vient d'une erreur courante. Dans les PICs, quand une broche peut etre utilisee en E/S ou entree analogique, elle est toujours initialisee en temps qu'entree analogique au RESET.
    Il faut donc selectionner le mode I/O dans le registre ANSEL pour les broches qu'on souhaite utiliser en E/S. Voir la doc du PIC12F629 page 44 :
    http://ww1.microchip.com/downloads/e...Doc/41190c.pdf

    Note d'application :
    http://www.microchip.com/stellent/id...pnote=en012123

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : pic: afficher registre w

    Merci pour ta réponse.

    C'était effectivement une éventualité, mais le PIC12F629 ne possède pas d'ADC, donc pas de registre ANSEL.

    Je me demande si mplab n'est pas un peu capricieux car j'ai essayé au boulot et le problème ne se reproduit pas.

    Je précise que j'ai mis un rafraichissement de la fenêtre watch toutes les ms.

    Je retrouve un peu le même problème avec GPIO1 en entrée. Des fois ça marche, et des fois ça marche pas.

    Je serais curieux de connaitre l'avis général sur la fiabilité du simulateur de mplab .

    A+

  7. #6
    invite03481543

    Re : pic: afficher registre w

    Salut Jack,

    as-tu bien configuré le registre de direction TRIS en sortie avant d'affecter ton I/O à 1?

    Voici un lien traitant de cette famille de petit µC assez complet.

    http://www.talkingelectronics.com/Pr...12F629-P1.html

    @+

  8. #7
    Jack
    Modérateur

    Re : pic: afficher registre w

    bien sur

    Voila le code. C'est un truc de débutant, mais faut bien commencer par quelque chose de simple. La preuve.

    En attendant voilà le programme complet. Si tu as une idée...

    Code:
    	LIST	P=PIC12F629
    	INCLUDE	"P12F629.INC"
    	radix	dec
    
    __config  _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _BODEN_OFF & _CP_OFF
    	
    #DEFINE	led	0	
    #DEFINE	BP	2
    
    	cblock	0x20
    	compt1,compt2
    	endc	
    
    	org	0
    	goto	debut
    	org	5
    debut	bcf 	STATUS,RP0 	;Bank 0
    	clrf	GPIO		;Led éteinte
    	bsf 	STATUS,RP0 	;Bank 1
    	movlw	b'111110'		;GPIO:0 en sortie et les autres en entrée
    	movwf	TRISIO
    	bcf 	STATUS,RP0 	;Bank 0
    loop1	btfss	GPIO,BP		;Test l'appui de BP
    	goto	loop1
    	movlw	b'000001'
    	xorwf	GPIO,1		;Inverse l'état de la led
    	call	tempo
    loop2	btfsc	GPIO,BP		;Test le relâchement de BP
    	goto	loop2
    	call	tempo
    	goto	loop1
    
    tempo	movlw	200		;Tempo de 10 ms environ
    	movwf	compt1		;Init compteur N°1
    loop3	movlw	200
    	movwf	compt2		;Init compteur N°2
    loop4	decfsz	compt2,1		;Décrémentation de compt1
    	goto	loop4		;Si compt1 != 0
    	decfsz	compt1,1		;Décrémentation de compt2
    	goto	loop3		;Si compt2 != 0
    	return
    	end
    Bon je me lance dans les interruptions.

    A+

    PS: merci pour le lien

  9. #8
    Jack
    Modérateur

    Re : pic: afficher registre w

    Un bon point pour celui qui trouve ou je me suis planté (si je me suis planté)

    A+

  10. #9
    invite03481543

    Re : pic: afficher registre w

    Je ne vois rien de suspect à priori, à tout hasard peut-être essaye de déclarer MCLRE_ON et/ou PWRTE_ON, des fois que le simulateur ne gère pas ces options convenablement dans le mode simulation.

    @+

  11. #10
    Jack
    Modérateur

    Re : pic: afficher registre w

    Sans effet.Toujours le même problème

    L'idéal serait que quelqu'un puisse faire l'essai. Je joins l'asm. Merci.

  12. #11
    dome45

    Re : pic: afficher registre w

    Bonjour Jack,

    Apres un rapide coup d'oeil sur ton programme 3 heures avant de fetre Noel :

    - il manque 2 lignes dans l'initialisation apres clrf GPIO
    il faut desactiver le comparateur ( comme sur le 16F628 )
    MOVLW 0x07 ( = 00000111b)
    MOVWF CMCON
    - pour inverser la sortie GP0
    MOVLW 0x01 ( = 00000001b)
    XORWF GPIO, f

    Essaye avec le simulateur ca devrait fonctionner ?????
    Bon Noel

  13. #12
    Jack
    Modérateur

    Re : pic: afficher registre w

    - il manque 2 lignes dans l'initialisation apres clrf GPIO
    il faut desactiver le comparateur ( comme sur le 16F628 )
    MOVLW 0x07 ( = 00000111b)
    MOVWF CMCON
    Mais oui. C'était écrit noir sur blanc dans la doc, mais je suis passé à côté

    - pour inverser la sortie GP0
    MOVLW 0x01 ( = 00000001b)
    XORWF GPIO, f
    Ca c'était bon.

    Encore merci. Passe un bon réveillon

Discussions similaires

  1. PIC, afficher l'heure sur un LCD ?
    Par invite116c4f9b dans le forum Électronique
    Réponses: 2
    Dernier message: 23/10/2007, 17h34
  2. Pic et registre
    Par f6bes dans le forum Électronique
    Réponses: 4
    Dernier message: 26/04/2007, 21h03
  3. PIC: Registre de travail W
    Par marc.suisse dans le forum Électronique
    Réponses: 10
    Dernier message: 04/09/2006, 21h03
  4. Registre Incon Et Intermask Pic 16f84
    Par alainav1 dans le forum Électronique
    Réponses: 2
    Dernier message: 11/10/2005, 21h13
  5. base de registre
    Par invite38811c52 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 31/07/2004, 10h00
Découvrez nos comparatifs produits sur l'informatique et les technologies.