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

[question basique Programmation C] comment changer valeur registre?



  1. #1
    jorg1n

    [question basique Programmation C] comment changer valeur registre?

    Bonjour,

    j'ai un souci, je souhaite modifier la valeur des bits 0,1 et 2 du registre TRISB, afin de les déclarer en entrée,je pourrais donc faire:
    TRISB=0x07;
    mais je ne souhaite pas modifier les autres valeurs des bits(la valeur est aléatoire car certains bits sont utilisés par la librairie d'un afficheur LCD)
    Comment faire cela?
    Merci d'avance

    -----


  2. Publicité
  3. #2
    Seb.26

    Re : [question basique Programmation C] comment changer valeur registre?

    Avec des OU et des ET plutot que des "="

    par exemple, pour mettre en Input ( donc à 1 ) les 3 bits de poids faibles du PORTB, tu fais :
    Code:
    TRISB |= 0x07; // 0000 0111
    et pour mettre à 0 ces même 3 bits :
    Code:
    TRISB &= 0xF8; // 1111 1000
    cherche les posts récents sur les "masques" : sujet déjà traite il y a peu
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  4. #3
    jorg1n

    Re : [question basique Programmation C] comment changer valeur registre?

    Je te remercie...

  5. #4
    Seb.26

    Re : [question basique Programmation C] comment changer valeur registre?

    de nada
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  6. #5
    jorg1n

    Re : [question basique Programmation C] comment changer valeur registre?

    J'ai un petit souci, mon compilateur plante lorsque je met l'instrution dans une boucle:
    do
    {
    TRISB !=0x07;
    ...
    }
    while(RB0 ==1 || RB1==1 || RB2==1)

    pourquoi??

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

    Re : [question basique Programmation C] comment changer valeur registre?

    C'est pas un '!' ( NON ), c'est un '|' ( OU ) ...

    [Edit] pour le '|', tu fais Alt-Gr + 6

    PS: ça sert à quoi de mettre ça dans ta boucle ???
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  9. Publicité
  10. #7
    jorg1n

    Re : [question basique Programmation C] comment changer valeur registre?

    PS: ça sert à quoi de mettre ça dans ta boucle ???
    en fait, lorsque j'ustilisai la fonction d'initialisation pour l'afficheur, et que celui ci utilise une des fonction de la librairie reset()...il modifiait la valeur de TRISB. j'ai donc modifier cette valeur par celle que je souhaitai, et tout fonctionne correctement...
    Je suis d'accord que de refaire 15000 fois une initialisation de PORT, c'est pas très beau...

    Merci

  11. #8
    Seb.26

    Re : [question basique Programmation C] comment changer valeur registre?

    Citation Envoyé par jorg1n Voir le message
    en fait, lorsque j'ustilisai la fonction d'initialisation pour l'afficheur, et que celui ci utilise une des fonction de la librairie reset()...il modifiait la valeur de TRISB. j'ai donc modifier cette valeur par celle que je souhaitai, et tout fonctionne correctement...
    Je suis d'accord que de refaire 15000 fois une initialisation de PORT, c'est pas très beau...

    Merci
    C'est surtout la librairie qui n'est pas très belle alors !!! ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  12. #9
    mister_e

    Re : [question basique Programmation C] comment changer valeur registre?

    que ce passe avec...
    Code:
    while((PORTB & 7)!=0)
    Steve

  13. #10
    LTHOMAS

    Re : [question basique Programmation C] comment changer valeur registre?

    Salut, sinon certains compilateur acceptent cette écriture :

    TRISB.0 = 1;
    TRISB.1 = 0;
    TRISB.2 = 1;
    etc...

    A+

  14. #11
    jorg1n

    Re : [question basique Programmation C] comment changer valeur registre?

    Je te remercie...
    j'ai essayé ...mais mon compilateur ne le prend pas...
    Mais merci quand meme

  15. #12
    mister_e

    Re : [question basique Programmation C] comment changer valeur registre?

    Quel compilateur tu utilise?

    est-ce que
    TRISBbits.TRISB0=0;
    TRISBbits.TRISB1=0;
    TRISBbits.TRISB2=0;
    fonctionne?

    C-18 fonctionne avec cette syntaxe.
    Steve

  16. Publicité
  17. #13
    jorg1n

    Re : [question basique Programmation C] comment changer valeur registre?

    Bonjour,

    j'utilise le compilateur PIC18 C/C++ de IAR.

    Bonne journée

Discussions similaires

  1. Question HYPER basique !
    Par alphons dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 10/03/2008, 20h48
  2. Une question basique sur un relais
    Par Elect2007 dans le forum Électronique
    Réponses: 8
    Dernier message: 22/08/2007, 19h07
  3. Une question en acido basique
    Par benji. dans le forum Chimie
    Réponses: 2
    Dernier message: 24/09/2006, 19h40
  4. question basique
    Par Castor974 dans le forum Physique
    Réponses: 11
    Dernier message: 08/05/2005, 10h32
  5. Question basique : calcul d'une concentration ?
    Par saturne dans le forum Chimie
    Réponses: 6
    Dernier message: 02/09/2004, 09h31