[question basique Programmation C] comment changer valeur registre?
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. #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. >>

  3. #3
    jorg1n

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

    Je te remercie...

  4. #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. >>

  5. A voir en vidéo sur Futura
  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. #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. >>

  8. #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

  9. #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. >>

  10. #9
    invite6ceed97c

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

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

  11. #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+

  12. #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

  13. #12
    invite6ceed97c

    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.

  14. #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 invite962bb108 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 invite56ff1776 dans le forum Électronique
    Réponses: 8
    Dernier message: 22/08/2007, 19h07
  3. Une question en acido basique
    Par invite38e68b65 dans le forum Chimie
    Réponses: 2
    Dernier message: 24/09/2006, 19h40
  4. question basique
    Par invitec628872e dans le forum Physique
    Réponses: 11
    Dernier message: 08/05/2005, 10h32
  5. Question basique : calcul d'une concentration ?
    Par invited148c062 dans le forum Chimie
    Réponses: 6
    Dernier message: 02/09/2004, 09h31
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...