Première prog sous MPLAB
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

Première prog sous MPLAB



  1. #1
    blacksword

    Première prog sous MPLAB


    ------

    Bonjour à tous! petite intro :
    Jusqu'à présent j'utilisais Flowcode pour réaliser les programmes pour mes pics et je les programmaient avec PicKit2 v2.5 (J'ai donc le programmateur PICKit 2, vous l'avez compris). Tout marchait bien mais j'ai voulu faire un programme pour envoyer des messages MIDI via le port série du pic mais rien à faire ça veut pas. Je me suis donc tourné vers MPLAB étant donné que j'ai quelques notions de C je me suis dit que ça devrait être bien. J'ai donc téléchargé le compilateur HI-TECH C version lite.
    Le problème :
    Pour commencer petit j'ai voulu allumer une DEL mais même ça je n'y arrive pas... J'utilise un PIC16F628A. J'ai câblé un oscillateur RC et une DEL sur la sortie RA2. j'ai configuré les bits sur :
    -osc : RC I/O...
    -wdt : OFF
    -PUT : OFF
    -MCLRE : ON
    -BODEN : ON
    -LVP : ON
    -CPD et CP sur OFF

    voici le code :
    Code:
    #include <pic.h>
    
    void main() {
    	TRISA = 0x00;
    	while(1) {	
    		PORTA = 4;
    	}
    }
    La compilation se passe bien mais quand je programme mon pic rien ne se passe... Vous avez une solution? Merci d'avance!

    -----

  2. #2
    RicounetZap

    Re : Première prog sous MPLAB

    Bonjour,

    Comment est cablée ta led ?
    Il faut qu'elle soit branchée d'un coté à la masse, et de l'autre à ta sortie du PIC et avec une résistance de protection.

    Cordialement

  3. #3
    blacksword

    Re : Première prog sous MPLAB

    ma del est bien câblée car avec flowcode elle s'allume bien, donc ça vient pas de là

  4. #4
    gedonet

    Re : Première prog sous MPLAB

    Bonjour
    Pour utiliser RA0, RA1, RA2 et RA3 en I/O classique, il faut ecrire 7 dans le registre CMCON.
    Gilles

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

    Re : Première prog sous MPLAB

    Alors j'ai essayé de mettre CMCON = 7 avant le main et j'ai des erreurs à la compilation et si je le met dans le main ça ne marche toujours pas... C'est pas normal, ça doit pas être bien méchant d'allumer une del quand même!

  7. #6
    RicounetZap

    Re : Première prog sous MPLAB

    Il faut mettre CMCON = 0x07 dans le main, et il faut aussi initialiser le registre VRCON pour que ta sortie RA2 ne soit pas considéré comme une Vref

  8. #7
    blacksword

    Re : Première prog sous MPLAB

    D'après la datasheet je me suis dit qu'il faudrait mettre VRCON = 0x00; dans le main pour désactiver les références de tension mais comme vous pouvez vous en douter ça ne marche pas... Cette fois ci mon code ressemble à ça :
    Code:
    #include <pic.h>
    void main() {
    	VRCON = 0x00;
    	CMCON = 0x07;
    	TRISA = 0x00;
    	while(1) {
    		PORTA = 4;
    	}
    }
    J'ai testé avec MPLAB SIM et ça marche bien par contre en vrai ça veut pas...
    Donc j'ai deux questions. Est-ce que ça ne serait pas les bits de config du pic qui ne sont pas bon? (ils n'ont pas changés depuis mon premier message). Sinon qu'est-ce qui est encore mal configuré car je sais que ça vient pas de ma carte de test? encore merci de votre participation! Je sens qu'on est plus loin de la réussite!

  9. #8
    blacksword

    Re : Première prog sous MPLAB

    c'est bon problème résolu!!!! En fait je programmais mon pic directement dans mplab et en fait en le programmant avec le logiciel PICKit 2 Programmer ben ça marche! Ma del s'allume!! Merci à tous pour votre aide, je vais pouvoir faire des choses plus intéressantes maintenant!

  10. #9
    freepicbasic

    Re : Première prog sous MPLAB

    pour le midi la vitesse n'est pas standard 31250 bps il faudra jouer avec les registres
    A+, pat

  11. #10
    gedonet

    Re : Première prog sous MPLAB

    Citation Envoyé par RicounetZap Voir le message
    , et il faut aussi initialiser le registre VRCON pour que ta sortie RA2 ne soit pas considéré comme une Vref
    Bonjour
    VRCON vaut 0x00 au reset, il n'y a donc pas lieu de l'initialiser. De toute façon, c'est CMCON qui affecte les pins en comparateur ou I/O classique.
    Gilles
    Dernière modification par gedonet ; 24/10/2009 à 18h55.

  12. #11
    blacksword

    Re : Première prog sous MPLAB

    ah je vais essayer sans le VRCON pour voir ce que ça donne. Pour le midi je sais que,normalement, faut que je mette SPBRG = 7 pour avoir une vitesse de transmission de 31250 bps. J'essayerai et je vous tiendrai au courant.

  13. #12
    blacksword

    Re : Première prog sous MPLAB

    bon pour info ça marche bien sans VRCON

  14. #13
    blacksword

    Re : Première prog sous MPLAB

    re bonjour à tous! Je me suis donc lancé dans un petit programme qui enverrait une note midi. Les données à envoyer son (en hexa) : 90, 3C, 40, ensuite une petite pause et la suite : 80, 3C, 40. Bon forcément vu que je sais pas trop comment ça marche j'ai fais un code qui marche pas... erreur à la compilation :
    Error [499] ; 0. undefined symbol:
    _putch(midi.obj)

    Code:
    #ifndef _XTAL_FREQ
    #define _XTAL_FREQ 4000000
    #endif
    #include <pic.h>
    #include <htc.h>
    #include <pause.c>
    #include <conio.h>
    #include <stdio.h>
    void envoiMIDI(int on, int note, int velocity) {
    	int noteon=0x90,noteoff=0x80;
    	if(on==1) {putch(noteon);} else {putch(noteoff);}
    	putch(note);
    	putch(velocity);
    }
    void main(void) {
    	TXSTA = 0x22;
    	SPBRG = 0x7;
    	CMCON = 0x07;
    	TRISA = 0x00;
    	PORTA = 4; //On allume une del pour être sûr que le programme se lance
    	int on=0x1,off=0x0,note=0x3C,velocity=0x40;
    	while(1) {
    	envoiMIDI(on,note,velocity);
    	pause100ms(10);
    	envoiMIDI(off,note,velocity);
    	pause100ms(10);	
    	}
    }
    je comprends donc que le problème vient des putch() mais je sais pas trop ce qui ne va pas... Pouvez vous éclaircir ce problème?

    P.S:ma fonction pause100ms() marche très bien

  15. #14
    freepicbasic

    Re : Première prog sous MPLAB

    faire un TXREG = note
    suivis dune attente du temps de transmission.
    1/31250 x 10 bits = 620µs minimum
    A+, pat

  16. #15
    blacksword

    Re : Première prog sous MPLAB

    merci pour cette réponse! Maintenant j'ai plus d'erreur à la compilation. Par contre sur ce site ils disent qu'il faut utiliser un inverseur pour transmettre les données. Y a-t-il un moyen logiciel de s'affranchir de cette contrainte ou faut-il vraiment que je passe par un tel inverseur?

  17. #16
    blacksword

    Re : Première prog sous MPLAB

    je me permet de faire remonter le sujet car il est parti un peu loin là...

  18. #17
    blacksword

    Re : Première prog sous MPLAB

    bon je crée un nouveau topic pour ça, ça sera plus clair.

    P.S : c'est quand même pas pratique de ne pas pouvoir éditer ses messages

Discussions similaires

  1. Problème sous MpLAB C30
    Par invitec63490c6 dans le forum Électronique
    Réponses: 1
    Dernier message: 16/03/2009, 13h39
  2. Programmer en C sous Mplab.
    Par invite2a128a15 dans le forum Électronique
    Réponses: 10
    Dernier message: 01/12/2008, 09h12
  3. Problème en simulation sous MPLAB!
    Par invite953f8104 dans le forum Électronique
    Réponses: 1
    Dernier message: 10/09/2008, 16h28
  4. Soucis de Prog sous Mikroc
    Par invite26d2ac2a dans le forum Électronique
    Réponses: 2
    Dernier message: 28/02/2007, 11h56
  5. prog sous dos
    Par inviteb679aa6a dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 27/04/2006, 22h39
Découvrez nos comparatifs produits sur l'informatique et les technologies.