Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 34

Petite question sur le PIC



  1. #1
    ricorico

    Petite question sur le PIC


    ------

    Salut.
    Voila le problème:
    -soit un registre à usage général chargé avec la variable 00h
    -soit une rotation à gauche de ce registre avec l'instruction RLF
    -soit une lecture tout de suite aprés la rotation dont le résultat est 01h
    Pourquoi ?
    ERIC

    -----

  2. Publicité
  3. #2
    monnoliv

    Re : Petite question sur le PIC

    Parce que le Carry Flag est à 1.
    Mets le à zéro avant !
    A+
    Ne soldez pas grand mère, elle brosse encore.

  4. #3
    ricorico

    Re : Petite question sur le PIC

    Salut.
    Merci pour ta réponse mais, même si tu met les flag à 0, le phénomène persiste...
    Essais encore...
    ERIC.

  5. #4
    monnoliv

    Re : Petite question sur le PIC

    Fais RLF puis RRF et lis pour voir...
    Si tu as toujours 01 c'est un problème de lecture.
    A+
    Ne soldez pas grand mère, elle brosse encore.

  6. #5
    ricorico

    Re : Petite question sur le PIC

    Salut.
    RRF=10h
    RLF=01h
    RRF>RLF=00h
    RLF>RRF=00h
    Pourquoi?
    Dans les deux premiers cas le bit de carry n'est pas positionné à 1 par un simple chargement de variable !?
    Dans les deux derniers par contre, le bit qui devrait être à 1, ne l'est pas...
    Il y à quelque chose qui m'échappe avec c'est instructions, car elles ne reportent pas la retenue dans la variable alors qu'il est spécifié dans le DATASHEET que la retenue est replacée dans la variable aprés être passé par la CARRY.
    Etrange non ?
    ERIC.

  7. A voir en vidéo sur Futura
  8. #6
    monnoliv

    Re : Petite question sur le PIC

    Oui mais ce qui est bizarre, c'est lorsque tu fais un RRF avec un carry à 1, tu devrais avoir 128 dans la variable, càd 80h. Or toi tu as 10h !!!
    Quid?
    Ne soldez pas grand mère, elle brosse encore.

  9. Publicité
  10. #7
    ricorico

    Re : Petite question sur le PIC

    Désolé de l'erreur, et tu as parfaitement raison...
    Il y à effectivement 80h !
    Donc ?
    ERIC.

  11. #8
    monnoliv

    Re : Petite question sur le PIC

    Donc je persiste. Le carry doit être à 1 avant la rotation. Sur la DATASHEET, il n'y a que le carry qui intervient et pas d'autres flags. Regarde si tu mets effectivement bien le carry à 0 !
    A+
    Ne soldez pas grand mère, elle brosse encore.

  12. #9
    ricorico

    Re : Petite question sur le PIC

    La CARRY est absolument à 0 avent la rotation, sans équivoque.
    Aucune action intermédiaire n'intervient !
    Le programme est trés simple:

    01C4 : CHARGMENT DE LA VARIABLE AVEC 00h (registre 44h)
    0183 : mise à 0 des FLAG
    0CC4 : ROTATION (registre 44h)
    0844 : LECTURE de la VARIABLE (r44h>W)
    0088 : SORTIE vers PORT (prélablement initialisé) de la variable
    0063

    Résultat : 80h !

    ERIC. (sic !)

  13. #10
    monnoliv

    Re : Petite question sur le PIC

    Vraiment bizarre. Le registre 44h est une simple variable ? Le PIC n'associe rien d'autre avec cette adresse ?
    Comment mets-tu à zéro les flags ?
    Ne soldez pas grand mère, elle brosse encore.

  14. #11
    ricorico

    Re : Petite question sur le PIC

    Tu vois, le programme est trés simple.
    De toute façon, les instructions de rotation ne font pas entièrement leur office, car en utilisation normale, la retenue n'est pas redirigée vers la variable, il y à donc là, un vrais probléme hardware.
    Je vais envoyer un mail chez microchip pour plus ample informé.
    Merci, en tout cas pour ta patience et bonjour à la belgique.
    ERIC.

  15. #12
    monnoliv

    Re : Petite question sur le PIC

    Y a pas de quoi, au fait pour toutes les infos sur les pics, va sur le site de Bigonoff (il y a peut-être aussi des infos sur les bugs): http://www.abcelectronique.com/bigon....php?par=740ae
    A+
    Ne soldez pas grand mère, elle brosse encore.

  16. Publicité
  17. #13
    T-Bot

    Re : Petite question sur le PIC

    tu peux juste donner les 5 lignes de code ASM qui font
    variable=0
    Carry=0
    rrf
    lecture.

    Sur quel pic ? t'es sur des banques ?
    parce que les valeurs que tu indiques avant tes commandes c'est pas facile à lire

  18. #14
    ricorico

    Re : Petite question sur le PIC

    SALUT.
    Merci de t'intéresser au problème.
    Code ASM ?
    C'est quoi !?
    ERIC.

  19. #15
    T-Bot

    Re : Petite question sur le PIC

    asm : assembleur...
    Tu sais le fichier que tu donnes à ton mpasm pour qu'il en fasse un .hex que tu donnes à manger à ton pic .... (Quel pic au fait ?)

  20. #16
    ricorico

    Re : Petite question sur le PIC

    MIAM...
    Voici le long programme...

    00000000 2808 0000 0000 0000 0000 0000 0000 0000
    00000008 1683 0188 1283 0000 0000 0000 0000 0000
    00000010 3000 0DD4 0844 0088 0063

    Résultat : 80h

    ERIC.

  21. #17
    monnoliv

    Re : Petite question sur le PIC

    T-Bot voulait dire le programme en langage d'assemblage, pas un fichier HEX où on ne comprend rien ! Ton outil de développement doit bien sortir un fichier .lst ou .asm qui doit être éditable. Est-ce que tu peux nous le montrer?
    A+
    Ne soldez pas grand mère, elle brosse encore.

  22. #18
    T-Bot

    Re : Petite question sur le PIC

    interessant cette série de chiffre, je vais jouer au loto...
    Rassures moi, tu programmes pas ton fichier hex directement... Tu programmes pas en language machine mais au moins en assembleur... Sinon, faut que je te réponde en binaire...

    c'est sur quel pic ? (troisième et dernière fois que je pose la question)

  23. Publicité
  24. #19
    ricorico

    Re : Petite question sur le PIC

    Salut.
    Je programme le 16F877 directement en binaire (hexa, précisement), c'est plus simple pour moi, et l'outil de développemnt est intégré au programmateur.
    Pourquoi faire compliqué, quand on peut faire simple.
    Cette série de chiffre est trés parlante si programme en héxa...
    Et puis, le probléme reste entier quelque soit le language :
    une variable chargée à 00h, suivie d'une rotation à gauche ou à droite, donne une valeur en lecture non nulle !?
    ERIC.

  25. #20
    T-Bot

    Re : Petite question sur le PIC

    Citation Envoyé par ricorico
    Pourquoi faire compliqué, quand on peut faire simple.
    Cette série de chiffre est trés parlante si programme en héxa...
    ERIC.
    c'est tellement simple de parler hexa... Surtout pour les autres... Et pour te relire.
    Toi, t'as jamais essayé l'assembleur. Tu sais c'est comme le language machine que tu utilises, mais en moins pénible et donc lisible pour un humain.

    Pour ta série de chiffre : voici mon code :
    Code:
    	include "p16F877.inc"
    	;Variables *********************************
    _toto_main                      equ 0x44
    	;Code ************************************ 
    	ORG 0
    	clrf PCLATH
    	goto _main__code
    
    	ORG 4
    
    _main__code
    	clrf _toto_main
    	bcf STATUS, C
    	rrf _toto_main, f
    _main__end
    	END
    et ca donne une fois passé dans l'assembleur fourni par microchip :

    00000111000100
    01000000000011
    00110011000100

    bin quoi c'est pas simple ?

    au fait c'est quoi en assembleur 0183 ?

    Maintenant sérieusement tu devrais passer à l'assembleur car c'est la dernière fois que je parle binaire.
    Dernière modification par T-Bot ; 05/07/2005 à 16h52.

  26. #21
    ricorico

    Re : Petite question sur le PIC

    SALUT.
    Evidemment, la série de 0 et de 1 que tu me donnes n'as pas beaucoup de sens, quoiqu'avec un peu d'habitude...
    Les séries de chiffres que j'ai données sont elles tout à fait sensées, puisqu'elles correspondent au codage hexadécimal des instructions machine du micro.
    Simplement, nous n'avons pas le même point de vue du language :
    Je suis au plus proche du language du CPU et toi au plus proche du language naturel HUMAIN.
    Le probléme reste entier et la polémique sur le language utilisé un peu stérile puisque, comme je l'ai déja écrit, quelque soit le language, le résultat est surement identique.
    J'aurais préféré que tu essais la manoeuvre sur un PIC et que tu me dises ce qu'il en résulte pour toi.
    Le méssage précédent celui-ci résume la probléme clairement et cette fois ci en français dans le texte :
    -variable (queconque) à 00h
    -rotation gauche ou droite (de la dite variable)
    (jusque là c'est clair ?!)
    -résultat de la lecture de cette variable : non NUL !
    Pourquoi ?
    Je cherche une explication car je fais surement une erreur quelque part.
    Merci pour ta patience T-BOT.
    ERIC.

  27. #22
    romelec

    Re : Petite question sur le PIC

    ca me parait étrange ce résultat.
    es-tu sur que le carry est à 0 au moment de la rotation ? (mets le status sur le portB avant la rotation)

    Parce que pour moi c'est un problème de carry, ca ne peut venir que de là.

  28. #23
    ricorico

    Re : Petite question sur le PIC

    SALUT.
    Oui, la carry est bien à 0 avant le rotation :
    -00h>variable
    -00h>status
    -RLF ou RRF
    >variable=80h ou 01h suivant la rotation
    Etrange non ?
    ERIC.

  29. #24
    romelec

    Re : Petite question sur le PIC

    il faudrait que bigonoff (le roi des PICs) passe par là...

  30. Publicité
  31. #25
    T-Bot

    Re : Petite question sur le PIC

    ricorico ce serait bien que j'ai pas a poser 12 fois les questions...

    au fait c'est quoi en assembleur 0183 ?

    Parceque moi, ca donne ce que tu as lu en binaire :
    0103

    J'ai pas mis le binaire que pour le fun.

    Ah pour information, j'ai déjà programmé en language machine en 1986 sur 8052A de l'Oric, depuis on a inventer le clavier 112 touches et je m'en sert. Je programme d'ordinaire en C et me sert de mes connaissances en Assembleur pour débugger ou optimiser. Si tu trouves la discussion stérile, c'est que tu as pas compris que l'assembleur et le language machine c'est la même chose (a ceci près que c'est lisible)

  32. #26
    ricorico

    Re : Petite question sur le PIC

    T-BOT, ne te fâche pas...!
    Moi aussi j'utilise mon clavier qui écrit sur mon écran qui envoie sur la programmateur qui envoie sur le PIC...étonnant non !?
    J'ai abandonné le burin et la table en marbre mais y'a pas si longtemps...
    Je trouve plus simple et évident POUR MOI ! de programmer comme ça. (je parle le binaire courramment ! gnarf)
    Ceci dit, tu as l'air calé sur les PIC et tu n'as pourtant pas apporter de réponse au probléme malgrés mon dernier message.
    Tu calles ? sic!
    ERIC ou 01101101100001 si tu préfères...pas !

  33. #27
    T-Bot

    Re : Petite question sur le PIC

    Bon, j'ai deux questions : j'attends deux réponses :

    1- au fait c'est quoi en assembleur 0183 ? ou c'est quelle commande ?
    2 - dis moi, quand tu lis cette variable 0x44, tu la lis depuis où et comment ? (quel outils ? )

  34. #28
    T-Bot

    Re : Petite question sur le PIC

    Citation Envoyé par ricorico
    SALUT.
    Oui, la carry est bien à 0 avant le rotation :
    -00h>variable
    -00h>status
    -RLF ou RRF
    >variable=80h ou 01h suivant la rotation
    Etrange non ?
    ERIC.
    chez moi ca se passe pas comme cela.
    As tu essayé au simulateur gratuit (MPLAB + MPSIM) de chez microchip ?

    essayes à l'adresse 0x45

  35. #29
    ricorico

    Re : Petite question sur le PIC

    SALUT.
    Je me permet d'insister.
    En fait, le phénomène est plus large, car les instructions de rotations ne donnes pas du tout le résultat annoncer dans les datasheet.
    Je fait une rotation de variable, la retenue n'est pas replacée dans la variable, qui se vide d'un bit à chaque rotation et au bout de 8 rotations est à 00h.
    Pas mal de processeurs j'ai déjà programmé, et jamais ce phénomène je n'avait rencontré...
    Je suis évidemment convaincu de mon erreure de manipulation, mais je ne vois pas ou.
    ERIC.

  36. #30
    T-Bot

    Re : Petite question sur le PIC

    jamais tu lis les questions... Donc je peux pas t'aider plus.

Sur le même thème :

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Petite question sur un dl
    Par dudivine dans le forum Mathématiques du supérieur
    Réponses: 9
    Dernier message: 04/03/2007, 00h23
  2. question sur pic
    Par archiviste dans le forum Électronique
    Réponses: 5
    Dernier message: 30/09/2006, 20h57
  3. [PIC]Convertion A/N ... petite question bête !
    Par La Praline dans le forum Électronique
    Réponses: 9
    Dernier message: 29/05/2006, 10h31
  4. pb sur une petite question
    Par momolitaliano dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 18/12/2005, 22h03
  5. Petite question sur ci
    Par superbat dans le forum Électronique
    Réponses: 17
    Dernier message: 07/10/2005, 16h47
Découvrez nos comparatifs produits sur l'informatique et les technologies.