C32 - Modifier une pin sans toucher aux autres
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

C32 - Modifier une pin sans toucher aux autres



  1. #1
    antoine6

    C32 - Modifier une pin sans toucher aux autres


    ------

    Bonjour,

    Depuis assez longtemps je programmait un PIC18F avec le logiciel CCS (programmation en C).

    Je me suis récemment acheté une carte à base de PIC32, et j'ai décidé de passer sur MPLAB et C32.

    Le site de microchip donne toutes les routines pour le bus SPI, les convertisseurs, ... mais pas moyen de trouver une doc sur comment gérer les entrées/sorties.

    En cherchant des programmes déja faits, j'ai trouvé la ligne suivante qui marche correctement:

    Code:
    PORTB = 0b10010000000000;
    Avec ca je modifie toutes les sorties du port B

    Ce que j'essaye de faire, c'est de modifier une seule broche à la fois, sans changer l'état des autres. J'utilise donc la commande suivante:

    Code:
    PORTBbits.RB10 = 1;
    PORTBbits.RB11 = 0;
    Le soucis, c'est que quand je met la sortie RB11 (ou une autre) à un niveau 0 ou 1, ca me met en même temps le reste du port à 0.

    Le probleme vient donc de mes lignes de code, ou bien d'ailleurs?

    Merci d'avance

    -----

  2. #2
    sdec25

    Re : C32 - Modifier une pin sans toucher aux autres

    Bonjour,

    Tu pourrais mettre les instructions assembleur correspondant à ton bout de code ? (view > disassembly listing).
    Et la définition de PORTBbits.

    En dernier recours, tu peux utiliser des fonctions C appelant les instructions assembleur set et clear.

  3. #3
    RISC

    Re : C32 - Modifier une pin sans toucher aux autres

    Salut Antoine,

    La programmation des PIC32 n'a rien à voir avec les petits PICs
    Il faut utiliser uniquement les librairies, même pour accéder aux ports d'E/S.

    Je te recommande de démarrer avec les exercices livrés sur le CD (n'installe pas le CD car c'est une vieille version de MPLAB...). Je me suis fait piégé, il m'a écrasé MPLAB avec une vieille version
    Fouille sur le CD, tu devrais trouver des exemples simples (faire clignoter des leds ou autres).

    Une autre bonne solution plus simple est de télécharger les exemples de code pour PIC32
    Par exemple celui la est apparemment fait pour les PORTS d'E/S (je sais pas pour quelle carte).

    a+
    Dernière modification par RISC ; 23/11/2009 à 23h47. Motif: correction

  4. #4
    antoine6

    Re : C32 - Modifier une pin sans toucher aux autres

    Merci pour ses réponses,

    Pour sdec, les lignes en assembleurs sont :
    Code:
    155:    PORTBbits.RB10 = 1;
    9D00003C  3C03BF88   lui       v1,0xbf88
    9D000040  90626051   lbu       v0,24657(v1)
    9D000044  34420004   ori       v0,v0,0x4
    9D000048  A0626051   sb        v0,24657(v1)
    
    156:    PORTBbits.RB11 = 0;
    9D00004C  3C04BF88   lui       a0,0xbf88
    9D000050  90836051   lbu       v1,24657(a0)
    9D000054  2402FFF7   addiu     v0,zero,-9
    9D000058  00621024   and       v0,v1,v0
    9D00005C  A0826051   sb        v0,24657(a0)

    Pour RISC, les exemples donnés dans le CD font clignoter les 4 leds de la carte, mais en jouant directement sur le port, et pas sur les pins

    Je vais fouiller dans les sources du lien que tu m'as donné, voir si je trouve mon bonheur =)

    Merci

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

    Re : C32 - Modifier une pin sans toucher aux autres

    J'ai trouvé les commandes suivantes pour mettre une broche à 0 ou 1:
    Code:
    mPORTDSetBits(BIT_0)
    mPORTDClearBits(BIT_0)
    La compilation se passe sans problèmes, j'essaierai donc ce soir sur la carte

  7. #6
    antoine6

    Re : C32 - Modifier une pin sans toucher aux autres

    Les deux lignes précedentes marchent parfaitement bien, probleme résolu =)

    (donné dans le fichier port/ports_basic)

    Merci à vous, bonne journée

Discussions similaires

  1. bravo a jbfe et aux autres
    Par invite88c56b4c dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 16
    Dernier message: 05/03/2008, 22h05
  2. Photo d'un pin ? Mais quel type de pin ?
    Par sanglap dans le forum Biologie
    Réponses: 2
    Dernier message: 25/03/2007, 12h05
  3. réduction d'un nitro sans toucher à l'aldéhyde
    Par tetrakis49 dans le forum Chimie
    Réponses: 20
    Dernier message: 21/03/2007, 14h12
  4. ecretage 200v differentiel sans toucher a la tension d'entre
    Par invite81b43184 dans le forum Électronique
    Réponses: 1
    Dernier message: 04/04/2006, 11h15
Découvrez nos comparatifs produits sur l'informatique et les technologies.