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

pic 16F ecriture et lecture d'un bit en memoire



  1. #1
    alainav1

    pic 16F ecriture et lecture d'un bit en memoire


    ------

    bonjour,
    je programme les pic (16FXX) en basic cependant je souhaite inclure une procedure en assembleur.
    j'ai creer une variable (byte ) en basic et je sais qu'elle est en 045h.
    je souhaite memoriser directement des bits dans cette variable (de b0 à b7 ) en assembleur .(ces bits sont des états successifs de portB.0 )
    (je souhaite realiser cette tache en assembleur pour des problemes de rapidité).
    pouvez vous m'aider ?
    cordialement
    alain

    -----
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  2. Publicité
  3. #2
    Qristoff
    Animateur Électronique

    Re : pic 16F ecriture et lecture d'un bit en memoire

    Bonjour Alain,
    je ne comprends pas trés bien la question mais si cela peut t'aider..

    movfw byte ; la variable byte est placé dans le registre W
    movwf PORTB ; le contenu de W est placé sur le registre du portC

    soit 2 cycles d'horloge
    Tout existe, il suffit de le trouver...!

  4. #3
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonjour,
    (desolé mais je ne reponds que maintenant car j'ai eu un probleme micro ).
    je precise mon besoin .
    je souhaite lire l'etat de portb.0 et mémoriser sa valeur en 045H (cette adresse est celle d'une variable donc reservé de la memoire ) .
    a cette adresse on doit pouvoir stocker 8 bits (donc 8 valeurs successives lecture de B.0) ?
    le but finale et de lire une centaines de valeurs de l'état de b.0 (rapidement ) et de pouvoir relire ces etats pour les exploiter .
    j'espère avoir été plus précis dans ma demande ?
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  5. #4
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonjour,
    un peux plus de precisions avec un exemple

    l'instruction
    bsf 0x49,0
    mets à 1 le bit 0 de l'adresse 49
    je souhaite mettre la valeur du du bit port B.0 en 0x49,0 avec le minimum d'instruction
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

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

    Re : pic 16F ecriture et lecture d'un bit en memoire

    Salut,

    C'est bien que tu travailles avec le bit0....

    Donc :
    Code:
    RRF PORTB, W ; bit0 dans carry
    RRF 0X49, F ; bit0 (carry) dans adresse 0x49
    A faire 8 fois pour avoir huit lectures du PORTB. Ensuite traiter les données de l'adresse 0x49.
    Dans adresse 0x49, le bit de poid faible contient la première lecture après huit lectures(ou huit rotations) du portb.

    David.

  8. #6
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonjour,
    rrf c'est une pas une rotation à droite ?
    peux tu me detailler la signification de l'instructions RRF PORTB, W ?
    cordialement
    alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  9. Publicité
  10. #7
    DavidDB

    Re : pic 16F ecriture et lecture d'un bit en memoire

    ben, tu charges le bit0 du portb dans carry avec la première rotation(sans modifier le portb) et ensuite tu copies carry dans ta variable 0x49...

    David.

  11. #8
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonsoir
    RRF 0X49, F copie donc le bit dans 0X49
    je supppose en b0 de l'adresse 0x49 ?
    il faut faire ensuite une rotation pour decaler ou cette fonction decale et copie ?
    en fait au final je souhaite lire un grand nombre d'etat de portB.0 et les transferer dans une zone memoire qui debute en 0X49 .(8 valeurs par adresse)
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  12. #9
    DavidDB

    Re : pic 16F ecriture et lecture d'un bit en memoire

    oui, c'est çà "RRF 0x49, F" copie le bit0 du portb0 dans la variable 0x49 mais en b7 vu que la rotation se fait vers la droite...

    C'est pour cela qu'il faut huit rotations pour remplir 0x49

    Maintenant si c'est plus de huits bits :

    Code:
    RRF PORTB, W ; bit0 dans carry
    RRF 0X49, F ; pour 0 à 7
    RRF 0x49+1, F ; pour 8 à 15
    RRF 0x49+2, F ; pour 16 à 23
    ....
    Sans oublier de faire un boucle avec le bon nombre de rotations...

    David.

  13. #10
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonsoir,
    pourrais tu m'ecrire un bout de programme qui memorise X etat (x=2048 par exemple ?) de B.0 à partir de l'adresse 0X49
    je comprend le principe mais de là a ecrire en asembleur ?
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  14. #11
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonsoir,
    voici le code que j'ai realisé ( pour memoriser 8 etats en 0X49)
    en m'inspirant d'info trouver sur le web realisation d'une boucle en assembleur

    movlw 1
    movwf A '1 dans A

    RRF PORTB, W 'lire portb.0
    RRF 0X49, F ' ecrire dans 49.0
    test:
    addlw 1
    movwf A ' A+1 dans A
    sublw 8 '8-W dans w
    btfsc status,C 'apres 8 passage on sort
    goto test

    qu'en pensez vous ?
    cordialement
    Alain
    Dernière modification par alainav1 ; 21/06/2009 à 20h33.
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  15. #12
    DavidDB

    Re : pic 16F ecriture et lecture d'un bit en memoire

    Bon, mémoriser 2048bits en RAM ne me semble pas réaliste...
    C'est 256 octets en RAM et en plus c'est long à traiter, tu ne pourras lire le portb que tous les 270cycles...

    David.

  16. Publicité
  17. #13
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonsoir,
    je peux lire port b.0 et le stocker en memoire (ça c'est relativement rapide )ensuite je realise un stockage dans une 24C
    le bout de programme que j'ai soumis plus haut est il bon ? (ce n'est que pour 8 valeurs )
    si je repete cette routine en 50h 51h etc je peux stocker quelques centaines de valeurs?

    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  18. #14
    Qristoff
    Animateur Électronique

    Re : pic 16F ecriture et lecture d'un bit en memoire

    Alain,
    est ce que tu peut nous dire ce que tu cherches à faire ? ça me parait bien compliqué ta solution...
    Tout existe, il suffit de le trouver...!

  19. #15
    DavidDB

    Re : pic 16F ecriture et lecture d'un bit en memoire

    Le problème, c'est déjà de connaître ce que tu entends par le plus rapide...

    Car 128 valeurs c'est déjà 25 cycles entre chaque lecture du portb...

    Puis comme le précise assez justement Qristoff, je ne suis pas certain que tu cherches la solution à ton problème dans la bonne direction !

    David.

  20. #16
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonsoir,
    je cherche à lire l'etat de portb.0 pendant un certain temps (quelques ms)stocker ces etats et ensuite traiter cette succesion de valeur (c'est un petit analyseur logique à memoire ).

    cordialement
    alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  21. #17
    alainav1

    Re : pic 16F ecriture et lecture d'un bit en memoire

    bonsoir,
    merci pour votre aide ,
    j'espere que vous avez compris mon besoin ?
    la nuit portant conseil
    bonne nuit a tous
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

Discussions similaires

  1. Ecriture/Lecture sur PIC 16F877A
    Par flyingrock dans le forum Électronique
    Réponses: 9
    Dernier message: 24/04/2009, 18h26
  2. C pour PIC : récupérer le nième bit d'un entier
    Par Toufinet dans le forum Électronique
    Réponses: 24
    Dernier message: 21/02/2009, 13h10
  3. comment passer des pic 16F au pic 18F ?
    Par MorpheusPic dans le forum Électronique
    Réponses: 5
    Dernier message: 13/08/2008, 22h04
  4. Réponses: 6
    Dernier message: 01/03/2007, 22h57
  5. Réponses: 4
    Dernier message: 31/12/2005, 14h09
Découvrez nos comparatifs produits sur l'informatique et les technologies.