Programmer des PIC12F avec MPLAB - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 53 sur 53

Programmer des PIC12F avec MPLAB



  1. #31
    pilatomic

    Re : Programmer des PIC12F avec MPLAB


    ------

    Arf. J'espère qu'il est sous garantie.

    -----

  2. #32
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Même pas, il était à soudé soit même, distribué par mon ancien IUT.
    Je vais devoir allez les revoir = 17.8€ le billet de train l'aller-retour.

  3. #33
    RISC

    Re : Programmer des PIC12F avec MPLAB

    Salut,

    Si tu dois continuer je te recommande de considérer l'achat d'un Pickit3 car l'ICD2 n'est pas géré sous les PC 32bits..et pas non plus sous MPLAB X.
    Un des avanatges du Pickit est de ne pas avoir besoin de driver car il utilise la classe HID.

    a+

  4. #34
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Je l'ai remmené à mon ancien IUT où mon prof, me l'a tout simplement reprogrammé. Apparemment, suite à des pics de surtension produite par l'alim de la carte(l'ICD2), il y a dès fois un bit qui saute dans l'un des deux µC sur la carte.

  5. #35
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Arf, j’espère juste que ça ne se reproduira pas.
    Dernière modification par pilatomic ; 05/06/2013 à 07h42.

  6. #36
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Il m'a passé un 2eme pic préprogrammé au cas où ça re-arrive.

    J'ai réussi à programmé un CAN puis une PWM puis Une PWM qui dépend de la CAN.
    Et maintenant je n'arrive pas à lire une entrée pourtant je pense avoir bien configuré tout les registres.
    Voici mon code :

    Code:
    #include <xc.h>
    
    #pragma config IESO = OFF
    #pragma config BOREN = OFF
    #pragma config CPD = OFF
    #pragma config CP = OFF
    #pragma config MCLRE = ON
    #pragma config PWRTE = ON
    #pragma config WDTE = OFF
    #pragma config FOSC = INTOSCIO  // Osc interne + GP4 et GP5 libre
    
    #define A0 GPIObits.GP0
    #define A1 GPIObits.GP1
    #define A2 GPIObits.GP2
    #define A4 GPIObits.GP4 //Pas de GP3
    #define A5 GPIObits.GP5
    #define _XTAL_FREQ 4000000 //la freq de ton oscillateur
    
    void main(void)
    {
    	OSCCONbits.IRCF = 0b111;    // 4Mhz
            OSCCONbits.SCS = 0;     // Configuration de l'horloge systeme
    	
    	// CAN :
    	ADCON0 = 0b00000001 ;
    	ANSEL  = 0b00011000 ;
    	
    	// PWM :
    	PR2 = 249 ;
    	CCPR1L = 127 ;	//Va changer
    	TRISIObits.TRISIO2 = 0 ;
    	T2CON = 0b00000101 ;
    	CCP1CON = 0b00001100 ;
    	
    	TRISIObits.TRISIO0 = 1 ;
    	TRISIObits.TRISIO1 = 1 ; // Le 2 est plus haut pour la PWM
    	TRISIObits.TRISIO4 = 0 ;
    	TRISIObits.TRISIO5 = 1 ;
    	ANSELbits.ANS2 = 0 ;
    
    	unsigned int POT ;
    
    if(A1 == 0)
    {
    	while(1)
    	{
    		// Il rentre toujours ici
    	}
    }
    
    else
    {
    	CCP1CON = 0b00000000 ;
    	T2CON = 0b00000000 ;
    	while(1)
    	{
    		// Il ne rentre jamais ici
    	}
    }
    
    return ;
    }

  7. #37
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Sinon, quelqu'un connaitrait pas un site avec des exemples de code pour PIC12F J'ai cherché mais en trouvant que pour PIC16F et 18F. Lire une entrée numérique ne doit normalement pas être si compliqué je pense...

  8. #38
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Concernant ton pin que tu n'arrive pas à lire, j'ai l'impression qu'il est configuré en entrée analogique.

  9. #39
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Dans la doc j'ai :

    ANSEL --> bit 3-0:
    ANS<3:0>: Analog Select bits
    Analog select between analog or digital function on pins AN<3:0>, respectively.
    1 = Analog input. Pin is assigned as analog input.(1)
    0 = Digital I/O. Pin is assigned to port or special function.

  10. #40
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Si je comprends bien ton code, tu veux pouvoir choisir au démarrage entre 2 modes, c'est ça ?

  11. #41
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    oui, c'est ça.

  12. #42
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Sinon, si tu cherchais des exemples de codes, il y en a ici : http://www.gooligum.com.au/tutorials...IC_Mid_C_1.pdf

  13. #43
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Merci pour le pdf, mais d'après celui-ci je pense toujours avoir tout bien fait :/
    Je remet mon code en simplifié au maximum :
    Code:
    #include <xc.h>
    
    #pragma config IESO = OFF
    #pragma config BOREN = OFF
    #pragma config CPD = OFF
    #pragma config CP = OFF
    #pragma config MCLRE = ON
    #pragma config PWRTE = ON
    #pragma config WDTE = OFF
    #pragma config FOSC = INTOSCIO
    
    #define A0 GPIObits.GP0
    #define A1 GPIObits.GP1
    #define A2 GPIObits.GP2
    #define A4 GPIObits.GP4
    #define A5 GPIObits.GP5
    #define _XTAL_FREQ 4000000
    
    void main()
    {
    	OSCCONbits.IRCF = 0b00000111;    // 4Mhz
    	OSCCONbits.SCS = 0;     	// Configuration de l'horloge systeme
    	
    	ANSEL  = 0b01000001 ; 	// -fff3210
    	TRISIO = 0b00101011 ; 	// --543210
    
    	while(1)
    	{
    		if(A1 == 0) 	A4 = 1 ;	// Le programme est toujours ici.
    		else 		A4 = 0 ;
    	}
    
    
    return ;
    }
    Dernière modification par AmigaOS ; 11/06/2013 à 02h31.

  14. #44
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Essaye de rajouter
    CMCON0=0b00000111;
    et ça devrait marcher.

    Ce code permet de désactiver le comparateur qui utilise la broche GP1 comme l'entrée inverseuse.

  15. #45
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Merci !
    Ça fonctionne enfin
    Maintenant je peux à peu près faire tout les fonctions que j'ai besoin avec ce µC.

  16. #46
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Je me suis déjà fais avoir sur un 16F628, lui aussi équipé de comparateurs.
    En règle générale, toujours regarder TOUTES les fonctions que peut réaliser une broche, il y fort à parier qu'une bonne moitié sont activées par défaut, empêchant l'utilisation en simple entrée numérique.

  17. #47
    RISC

    Re : Programmer des PIC12F avec MPLAB

    Salut,


    Comme d'habitude...la solution est dans la datasheet du PIC12F683, chapitre 4 (bien lire la NOTE en grisé)...

    a+

  18. #48
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Judicieuse remarque

  19. #49
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Finalement j'ai encore des problèmes avec ces quelques fonctionnalités que j'ai besoin
    Enfaite mon programme doit convertir plusieurs signaux analogiques en numérique, sauf que je n'arrive pas à en faire plusieurs. Quand j'écris juste l'une ou juste l'autre la conversion fonctionne mais si je met les deux j'ai des résultats bizarres. Je n'ai rien trouvé dans la doc..
    Voici mon code :
    Code:
    	while(1)
    	{
    	
    		ADCON0bits.CHS1=1; ADCON0bits.CHS0=1;	//AN3
    		ADCON0bits.GO = 1 ;
    		POT = (ADRESH<<2)|(ADRESL>>6) ;
    
    		ADCON0bits.CHS1=0; ADCON0bits.CHS0=0;	//AN0
    		ADCON0bits.GO = 1 ;
    		AMP = (ADRESH<<2)|(ADRESL>>6) ;
    		
    		if(AMP<499) GPIObits.GP5=1;   else GPIObits.GP5=0;	//Ceci ne fonctionne que quand j’efface les 3 lignes pour AN3
    	}
    (POT et AMP sont deux variables unsigned int)
    Dernière modification par AmigaOS ; 14/06/2013 à 00h58.

  20. #50
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Le convertisseur A/N est lent, entre ton ADCON0bits.GO = 1 et AMP = (ADRESH<<2)|(ADRESL>>6) il n'a pas le temps de faire la conversion, car il lui faut plusieurs cycles d'horloge.
    Rajoute la ligne suivante :
    while(ADCON0bits.GO);
    après chaque ligne ADCON0bits.GO = 1, comme ça ton code attendra que la conversion A/N soit terminée.

  21. #51
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Ça ne fonctionne toujours pas, même en rajoutant un delay de 200ms pour chaque conversion.
    Je vais remettre tout mon code :
    Code:
    #include <xc.h>
    
    #pragma config IESO = OFF
    #pragma config BOREN = OFF
    #pragma config CPD = OFF
    #pragma config CP = OFF
    #pragma config MCLRE = ON
    #pragma config PWRTE = ON
    #pragma config WDTE = OFF
    #pragma config FOSC = INTOSCIO
    
    #define A0 GPIObits.GP0
    #define A1 GPIObits.GP1
    #define A2 GPIObits.GP2
    #define A4 GPIObits.GP4
    #define A5 GPIObits.GP5
    #define _XTAL_FREQ 4000000
    
    void main(void)
    {
    	// OSC :
    	OSCCONbits.IRCF = 0b111;		// 4Mhz
    	OSCCONbits.SCS = 0 ;     		// Configuration de l'horloge systeme
    	
    	TRISIO = 0b00011001 ;			// --543210
    	CMCON0 = 0b00000111 ;
    	
    	// CAN :
    	ADCON0 = 0b00000001 ;			// AN0=000 AN3=011
    	ANSEL  = 0b00011001 ;			// Fosc/8, AN0 et AN3 Analog
    	
    	unsigned int POT, AMP ;
    
    	while(1)
    	{
    	
    		ADCON0bits.CHS1=1; ADCON0bits.CHS0=1; //AN3
    		ADCON0bits.GO = 1 ;
    		while(ADCON0bits.GO) ;
    		POT = (ADRESH<<2)|(ADRESL>>6) ;
    
    		ADCON0bits.CHS1=0; ADCON0bits.CHS0=0; //AN0
    		ADCON0bits.GO = 1 ;
    		while(ADCON0bits.GO) ;
    		AMP = (ADRESH<<2)|(ADRESL>>6) ;
    		
    		if(AMP<499) A5=1; else A5=0; 		//Ceci ne fonctionne que quand j’efface les 4 lignes pour AN3
    	}
    return ;
    }
    Dernière modification par AmigaOS ; 14/06/2013 à 14h17.

  22. #52
    pilatomic

    Re : Programmer des PIC12F avec MPLAB

    Hum, étrange. Et si tu rajoute un delay de 1ms entre
    ADCON0bits.CHS1=1; ADCON0bits.CHS0=1; //AN3
    et
    ADCON0bits.GO = 1 ;

    ça marche mieux ?

  23. #53
    AmigaOS

    Re : Programmer des PIC12F avec MPLAB

    Ah oui, c'est ce que j'étais en train de tester. Maintenant ça marche. Fallait le trouver ^^
    Merci!

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Problème PIC12F MPLAB
    Par chimere322 dans le forum Électronique
    Réponses: 10
    Dernier message: 27/12/2011, 23h05
  2. Programmer un PIC avec un Pickit 3 sans MPLAB
    Par invite2de7076a dans le forum Électronique
    Réponses: 4
    Dernier message: 04/08/2010, 08h16
  3. Programmer en C sur mplab?
    Par invite935a281a dans le forum Électronique
    Réponses: 2
    Dernier message: 07/11/2009, 15h49
  4. Programmer en C sous Mplab.
    Par invite2a128a15 dans le forum Électronique
    Réponses: 10
    Dernier message: 01/12/2008, 09h12
  5. Réponses: 0
    Dernier message: 05/07/2008, 19h59
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...