[Programmation] conserver programme dans pic18f
Répondre à la discussion
Affichage des résultats 1 à 21 sur 21

conserver programme dans pic18f



  1. #1
    jerome0

    conserver programme dans pic18f


    ------

    Bonjour,


    J'ai réalisé un programme pour un pic18f4520, seul problème, je ne sais absolument pas comment faire pour que le programme se lance une fois débranché de l'ordi et que le systeme soit alimenté plus tard par interrupteur.... pouvez vous m'expliquer ? je n'ai pas trouvé de réponse sur internet, ou je n'ai pas su quoi taper

    il y a bien tout le système d'alimentation avec pile + régulateur.

    Je vous remercie

    -----

  2. #2
    jerome0

    Re : conserver programme dans pic18f

    Alors j'ai continué de chercher, et j'ai lu qu'il fallait programmer en mode production.

    J'ai donc utilisé MPlab X avec pickit 3 et j'ai importé le fichier .hex à priori tout c'est bien déroulé (cf photo)

    Nom : Capture du 2017-05-18 17-56-43.png
Affichages : 90
Taille : 53,7 Ko


    mais je pensais qu'après avoir retiré le pickit et alimenté le circuit, le programme se serait lancé mais non... Avez vous une idée de pourquoi ?

  3. #3
    Seb.26

    Re : conserver programme dans pic18f

    poste le schéma électronique qui est autours de ton CPU
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  4. #4
    jerome0

    Re : conserver programme dans pic18f

    la voici :

    Nom : Capture du 2017-05-18 18-30-26.png
Affichages : 111
Taille : 126,1 Ko

    au début, j'utilisais pickit2. mais comme IPE ne prend que le 3... j'ai changé après.

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

    Re : conserver programme dans pic18f

    Alors par contre au niveau du programme, je n'ai pas fait particulièrement de configuration. Je n'ai jamais essayé d’implémenté un programme avant pour pouvoir l'utiliser sans l'ordi après.
    Faut il configurer certaines choses en particulier ?

    le voiçi, qui fonctionne très bien en mode debug

    Code:
    #include <xc.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <pic18f4520.h>
    #pragma config OSC = INTIO67
    #pragma config WDT = OFF,LVP=ON
    #define _XTAL_FREQ 32000000 
    
    //*Variable liee au 7seg */**********************
    	
    unsigned char TAB7SEG[10]={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B};
     int tps_leds=0,i=0,cpt=0,j=0,duree=300;
    unsigned int heures=0,minutes=0,secondes=0;
    int TAB_BCD[4]={0};
    
    
    void main (void)
    {
    
    	OSCCON|=0x70; // oscillo intern Ã* 8 Mhz
    	OSCTUNE=0x4F; // Utilisaion de la PLL ->*4 = 32Mhz
        //HLVDCONbits.HLVDEN=1;
        //HLVDCON=(HLVDCON|0x05)&0xF5;
        TRISE&=0XF0;
        TRISA=0x00;
        TRISD=0x00;
        TRISC&=0xE0;
        LATD=0x1F;
        ADCON1 = 0xF ; 
        TRISCbits.RC7=0;
        INTCONbits.RBIF = 0;
        INTCONbits.RBIE = 0;
        INTCONbits.INT0E = 1; //enable Interrupt 0 (RB0 as interrupt)
        INTCON2bits.INTEDG0 = 1; //cause interrupt at falling edge
        INTCONbits.INT0F = 0; //reset interrupt flag
    
        //Initialistation interruption0 
        TRISBbits.RB0 = 1; //set RB0 as Input
    	INTCON2bits.INTEDG0=0;
        INTCON3bits.INT2IP=1;
        INTCONbits.INT0IF=0;
        
        //Initialistation interruption1
        TRISBbits.RB1 = 1;
        INTCON2bits.INTEDG1=0;
        INTCON3bits.INT1IP=1;
        INTCON3bits.INT1IF=0;
        
        //Initialistation interruption2
        TRISBbits.RB2 = 1;
        INTCON2bits.INTEDG2=0;
        INTCON3bits.INT2IP=1;
        INTCON3bits.INT2IF=0;
        
        //Initialistation timer0
    
    	INTCONbits.TMR0IE=0;
    	INTCONbits.TMR0IF=0;
    	T0CON=0x03;
    	TMR0H=0xC2;
    	TMR0L=0xF6;
    
        
        //Initialistation timer2
    
    	T2CON=0x7A;
    	TMR2=0;
        PR2=125;
    	IPR1bits.TMR2IP=0;
        PIR1bits.TMR2IF=0;
        PIE1bits.TMR2IE=1;
        
        //Deverouillage
        INTCONbits.INT0IE=1;
        RCONbits.IPEN=1;
        INTCONbits.PEIE=1;
        INTCON3bits.INT1E=1;
        INTCON3bits.INT2E=1;
    	T2CON|=0x04;
        INTCON|=0xC0;
    
       	while(1)
    	{ 
            
            
           
        affiche_code (duree);
    	}

  7. #6
    DAUDET78

    Re : conserver programme dans pic18f

    Tu peux montrer sur quoi va LED_B et LED_H ?
    J'aime pas le Grec

  8. #7
    RISC

    Re : conserver programme dans pic18f

    Salut,

    quelques corrections dans ton code en caractères gras
    Code:
    #include <xc.h>
    #include <stdlib.h>                // semble inutile sauf si tu utilises les librairies printf,....
    #include <stdio.h>                 // semble inutile sauf si tu utilises les librairies printf,....
    //#include <pic18f4520.h>   ligne inutile (même chose que <xc.h> ci-dessus
    #pragma config OSC = INTIO67
    #pragma config WDT = OFF,LVP=OFF   // LVP doit être OFF
    #define _XTAL_FREQ 32000000 // semble inutile sauf si tu utilises les macros __delay...... 
    
    //*Variable liee au 7seg */**********************
    	
    unsigned char TAB7SEG[10]={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B};
     int tps_leds=0,i=0,cpt=0,j=0,duree=300;
    unsigned int heures=0,minutes=0,secondes=0;
    int TAB_BCD[4]={0};
    
    
    void main (void)
    {
    
    	OSCCON|=0x70; // oscillo intern Ã* 8 Mhz
    	OSCTUNE=0x4F; // Utilisaion de la PLL ->*4 = 32Mhz
        //HLVDCONbits.HLVDEN=1;
        //HLVDCON=(HLVDCON|0x05)&0xF5;
        TRISE&=0XF0;
        TRISA=0x00;
        TRISD=0x00;
        TRISC&=0xE0;
        LATD=0x1F;
        ADCON1 = 0xF ; 
        TRISCbits.RC7=0;
        INTCONbits.RBIF = 0;
        INTCONbits.RBIE = 0;
    
        INTCON2bits.INTEDG0 = 1; //cause interrupt at falling edge
        INTCONbits.INT0F = 0; //reset interrupt flag
        INTCONbits.INT0E = 1; //enable Interrupt 0 (RB0 as interrupt)   // a mettre après les 2 autres lignes
    
        //Initialistation interruption0 
        TRISBbits.RB0 = 1; //set RB0 as Input
    	INTCON2bits.INTEDG0=0;
        INTCON3bits.INT2IP=1;
        INTCONbits.INT0IF=0;
        
        //Initialistation interruption1
        TRISBbits.RB1 = 1;
        INTCON2bits.INTEDG1=0;
        INTCON3bits.INT1IP=1;
        INTCON3bits.INT1IF=0;
        
        //Initialistation interruption2
        TRISBbits.RB2 = 1;
        INTCON2bits.INTEDG2=0;
        INTCON3bits.INT2IP=1;
        INTCON3bits.INT2IF=0;
        
        //Initialistation timer0
    
    	INTCONbits.TMR0IE=0;
    	INTCONbits.TMR0IF=0;
    	T0CON=0x03;
    	TMR0H=0xC2;
    	TMR0L=0xF6;
    
        
        //Initialistation timer2
    
    	T2CON=0x7A;
    	TMR2=0;
        PR2=125;
    	IPR1bits.TMR2IP=0;
        PIR1bits.TMR2IF=0;
        PIE1bits.TMR2IE=1;
        
        //Deverouillage
        INTCONbits.INT0IE=1;
        RCONbits.IPEN=1;
        INTCONbits.PEIE=1;
        INTCON3bits.INT1E=1;
        INTCON3bits.INT2E=1;
    	T2CON|=0x04;
        INTCON|=0xC0;
    
       	while(1)
    	{ 
                       affiche_code (duree);    // ou est cette fonction ???
    	}
    Dernière modification par Antoane ; 19/05/2017 à 00h40. Motif: Réparation balise quote

  9. #8
    jerome0

    Re : conserver programme dans pic18f

    LEDS_B et LEDS_H vont sur la grille d'un transistor. Je pilote des lignes de leds via ceux-ci

    Voilà le schéma complet. Le problème viendrait d'une des pattes ?

    Nom : schema_pic2.png
Affichages : 97
Taille : 54,1 Ko
    Dernière modification par jerome0 ; 19/05/2017 à 07h57.

  10. #9
    jerome0

    Re : conserver programme dans pic18f

    a en fait je n'ai pas conné tout tout tout le programme car je me suis dit que le problème venait sûrement du "haut" mais le voici:

    Code:
    /*
     * File:   newmain.c
     * Author: asus
     *
     * Created on 12 mai 2017, 09:30
     */
    #include <xc.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <pic18f4520.h>
    #pragma config OSC = INTIO67
    #pragma config WDT = OFF,LVP=ON
    #define _XTAL_FREQ 32000000 
    
    //*Variable liee au 7seg */**********************
    	
    unsigned char TAB7SEG[10]={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B};
     int tps_leds=0,i=0,cpt=0,j=0,duree=300;
    unsigned int heures=0,minutes=0,secondes=0;
    int TAB_BCD[4]={0};
    
    //*Variable liee au timer */*********************/
    int pause=1;
    double pourcent=0;
    double Recharge=0;
    double RefTemps=0;
    double temps=0,temps_ligne=0;
    int cptModulation=5;
    int ligne_active=0x10;
    
    //*variable de la mesure */**********************/
    
    int coefficient=1;
    signed int NbIncr = 0;
    int A=0;
    int B=0;
    char pret=0;
    
    void decode_bcd(unsigned int temps)  // Attention au type du tableau par rapport aux calculs
    {
    	heures=temps/3600;
    	minutes=(temps%3600)/60;
    	secondes=temps%60;
    
    	if(heures)
    	{
    		TAB_BCD[2]=heures/10;
    		TAB_BCD[3]=heures%10;
    		TAB_BCD[0]=minutes/10;
    		TAB_BCD[1]=minutes%10;
    	}
    	else
    	{
    		TAB_BCD[2]=minutes/10;
    		TAB_BCD[3]=minutes%10;
    		TAB_BCD[0]=secondes/10;
    		TAB_BCD[1]=secondes%10;
    	}
    }
    
    
    void affiche_code ( unsigned int duree_sablier )
    {
    
    decode_bcd(duree_sablier); 
    	for(i=0;i<=100;i++)
    	{
    		LATE = 6;                      // port de transition
    	 	LATA = TAB7SEG[TAB_BCD[3]];  // envoi le numero dans le port D ( Qu'on ne vois pas car port E = 6)
    	  	LATE=3;                      // selection du port associée au numero
    		__delay_us (200);
    
    		LATE = 6;
     	 	LATA = TAB7SEG[TAB_BCD[2]];
      		LATE=2;
    		__delay_us (200);
    
    		LATE = 6; 
    	 	LATA = TAB7SEG[TAB_BCD[1]];
    	  	LATE=1;
    		__delay_us (200);
    
    		LATE = 6;
      		LATA = TAB7SEG[TAB_BCD[0]];
    		LATE = 0;
    		__delay_us (200);
    	}
    }
    
    void mesure_time(void)//unsigned long time
    {
    	INTCON3|=0x18;
    	while(pret==0)
    	{
    		affiche_code(duree);
    	}
    	INTCON3&=0xE7;
    }
    
    void reglage_modulation(void)
    {
    	pourcent=(double)temps_ligne/(double)RefTemps;	// pourcent de type double /*********************************************/
    	if(pourcent<=0.05)
    	{
    		TMR0H=0xD6;								// Ici, on limite le % de luminosité a 5% et 95% on precharge le timer en fonction.
    		TMR0L=0xFB;								// 0xD7BB en enlevant 48 cycles
    	}
    	else if(pourcent>=0.95)
    	{
    		TMR0H=0xFE;
    		TMR0L=0x0B;
    	}
    	else
    	{
    		Recharge=55535-(pourcent*10000);		// ATTENTION, A VOIR, PAS FORCEMENT AU BON ENDROIT +
    		TMR0H=Recharge/0x0100;
    		TMR0L=Recharge-(TMR0H*0x0100);
    	}
    }
    
    void main (void)
    {
    
    	OSCCON|=0x70; // oscillo intern Ã* 8 Mhz
    	OSCTUNE=0x4F; // Utilisaion de la PLL ->*4 = 32Mhz
        //HLVDCONbits.HLVDEN=1;
        //HLVDCON=(HLVDCON|0x05)&0xF5;
        TRISE&=0XF0;
        TRISA=0x00;
        TRISD=0x00;
        TRISC&=0xE0;
        LATD=0x1F;
        ADCON1 = 0xF ; 
        TRISCbits.RC7=0;
        INTCONbits.RBIF = 0;
        INTCONbits.RBIE = 0;
        INTCONbits.INT0E = 1; //enable Interrupt 0 (RB0 as interrupt)
        INTCON2bits.INTEDG0 = 1; //cause interrupt at falling edge
        INTCONbits.INT0F = 0; //reset interrupt flag
    
        //Initialistation interruption0 
        TRISBbits.RB0 = 1; //set RB0 as Input
    	INTCON2bits.INTEDG0=0;
        INTCON3bits.INT2IP=1;
        INTCONbits.INT0IF=0;
        
        //Initialistation interruption1
        TRISBbits.RB1 = 1;
        INTCON2bits.INTEDG1=0;
        INTCON3bits.INT1IP=1;
        INTCON3bits.INT1IF=0;
        
        //Initialistation interruption2
        TRISBbits.RB2 = 1;
        INTCON2bits.INTEDG2=0;
        INTCON3bits.INT2IP=1;
        INTCON3bits.INT2IF=0;
        
        //Initialistation timer0
    
    	INTCONbits.TMR0IE=0;
    	INTCONbits.TMR0IF=0;
    	T0CON=0x03;
    	TMR0H=0xC2;
    	TMR0L=0xF6;
    
        
        //Initialistation timer2
    
    	T2CON=0x7A;
    	TMR2=0;
        PR2=125;
    	IPR1bits.TMR2IP=0;
        PIR1bits.TMR2IF=0;
        PIE1bits.TMR2IE=1;
        
        //Deverouillage
        INTCONbits.INT0IE=1;
        RCONbits.IPEN=1;
        INTCONbits.PEIE=1;
        INTCON3bits.INT1E=1;
        INTCON3bits.INT2E=1;
    	T2CON|=0x04;
        INTCON|=0xC0;
    
       	while(1)
    	{ 
            
            
           
        affiche_code (duree);
    	}
        
        
    }
    
    /********************************************************************************/
    /* Mise en place des routines d'interruptions hautes et basses					*/
    /****************************************************²****************************/
    
    /*void interrupt tc_int(void)             // High priority interrupt
    {    
        
    
        if(INTCONbits.INT0IF)  							// Flag d'interruption sur retournement du sablier
    	{	
            duree=600;
    		INTCON&=0xFD;								// on baisse le flag
    	}
    
    
    }
    */
    
    void interrupt low_priority   LowIsr(void)    //Low priority interrupt
    {
    
    
        if(PIR1bits.TMR2IF)									// si flag sur interruption de 20ms
        {
            if(pause==0)									// si "mode reglage"
    		{
    //INTCON2bits.INTEDG2=0;
    //INTCON2bits.INTEDG1=0;
              //  duree=duree+(NbIncr*coefficient);			// au augemente la durée total, en ajoutant le nombre de cran detecte 
               // NbIncr=0;									// * un coeff. on réinitialise ensuite le cran détecté. 
    		
                if(cpt==0)								// Par contre, si on est pret, et qu'on a eu 250 flag (cpt 250 ->0) soit 1s
                {											                   
    			
                    if(tps_leds>0)								// On verifie si les 5s limite du 7seg sont écoulé,
                    {
                		tps_leds--;								//ET s'il reste du temps, on enleve une seconde
                    }
                    duree--;									// on enleve une sec a la duree totale,
                    temps_ligne--;								// ainsi qu'au temps de la ligne active 
                    if(temps_ligne==0)					// Si la ligne est terminé,  
                    {
                        temps_ligne=RefTemps;					// on remet la ligne au temps de ref d'une ligne,
                        LATD^=ligne_active;							// on eteind la ligne fini 
                        LATC^=ligne_active;							// on eteind la ligne fini 
                        ligne_active>>=1;					// on decale la ligne active
                        LATD^=ligne_active;							// on allume la ligne suivante 
                        LATC^=ligne_active;							// on amlume la ligne fini 
                        
                //        LATA=((~PORTD)&0x1F);				// on prend les 5 ligne de leds du haut et on affiche l'inverse-miroir en bas
                    }
                    cpt=275;
                }
                else								// si le temps de ligne n'est pas terminé, ( donc pas à une senconde	
                {
                    cpt--;							// on enleve un flag 	
    
                }
            
                    
                //Partie correspondant  
                if(cptModulation==0)        // Si on a eu 5 flag, soit 20ms
                {
                    
                    PORTD|=ligne_active; 			// on rallume la ligne car Retour en debut de periode
                    PORTC=~PORTD; 	// on prend les 5 ligne de leds du haut et on affiche l'inverse-miroir en bas
                    T0CONbits.TMR0ON=1;            //debut de periode, on lance le timer0
                    cptModulation=5;
                }
                else
                {
                    cptModulation--;
                }
    							// on remet la précharge du Timer 2 pour flagger a 20ms
            
            
            }
            TMR2=0;
            PIR1bits.TMR2IF=0;				// on rebaisse le flag
        }
        if(INTCONbits.TMR0IF)       
    	{
            PORTD&=(~ligne_active);
            PORTC=~PORTD;
            INTCONbits.TMR0IF=0;
            T0CONbits.TMR0ON=0;
            reglage_modulation();			// On est ici en debut de periode,  on va donc regler la modulation de luminosité.	
    	}
    }
    
    
    
    void interrupt high_priority   HighIsr(void)    //Low priority interrupt
    {
        if(INTCONbits.INT0IF)  							// Flag d'interruption sur retournement du sablier
    	{	
            pause^=1;
    		if(!pause)									// si il est pret,
    		{	
                INTCON3bits.INT1E=0;
                INTCON3bits.INT2E=0;
    			tps_leds=5;									// on limite l'affichage des 7seg pendant 5 secondes, 
    			temps_ligne=duree/5;						// on calcule le temps de chaque ligne 
    			RefTemps=temps_ligne;							// que l'on prendra egalement comme reference de ligne
                reglage_modulation();			// On est ici en debut de periode,  on va donc regler la modulation de luminosité.	
    			LATD=0x1F;									// le port D commence avec les 5 lignes hautes alumées 
    			ligne_active=0x10;							// on stock une variable indiquant la ligne modulée
    			LATC=0x00;									// on enteind les leds du bas
    		}	
            else
            {
    
                pause=1;
                INTCON3bits.INT1E=1;
                INTCON3bits.INT2E=1;
            }
            INTCON2bits.INTEDG0^=1;
    		INTCONbits.INT0IF=0;								// on baisse le flag
    	}
        
        
        if(INTCON3bits.INT1IF) //	si flag du A
    	{
            if(INTCON2bits.INTEDG1) //si un front montant + detection avant B
    		{
    			A=1; 
    
    		}
    		else if(INTCON2bits.INTEDG1==0)
    		{
    			if(A&&duree<=14399)
                {
                    duree++;
                }
                else if(A==0&&duree>=1)
                {
                        duree--;
                }
    		}
            INTCON2bits.INTEDG1^=1;
    		INTCON3bits.INT1IF=0;								// je baisse le flag
    	}
        
        
        if(INTCON3bits.INT2IF)								// Meme fonctionnement que pour A 
    	{		
    			A=0;	
    		INTCON3bits.INT2IF=0;
    	}
    
    }

  11. #10
    DAUDET78

    Re : conserver programme dans pic18f

    Citation Envoyé par jerome0 Voir le message
    Voilà le schéma complet.
    Sauf erreur de ma part, je pense que tu as inversé source et drain de tous tes NMOS.
    As tu fait le calcul, pour dimensionner les PNP et les NMOS du courant crête digit et segment qui passent dedans ?
    Je ne vois qu'un seul condensateur de découplage du Vdd . C'est insuffisant .
    J'aime pas le Grec

  12. #11
    jerome0

    Re : conserver programme dans pic18f

    Oui exact il ont tous été inversé mais j'ai pu y remédier lors de la pose des composants. Sur la plaque réalisé des pattes on bien été échangé. oui j'avais réalisé les calculs pour les transistors avec vous il y a quelques temps ^^.

    Mais du coup est-ce qu'il y à un problème au niveau du branchement du pickit ? car je n'ai vraiment aucun problème pour le débogage, tout fonction correctement. Seulement impossible de l'implémenter et qu'il fonctionne sans branchement au pc, juste avec interrupteur + pile.

  13. #12
    antek

    Re : conserver programme dans pic18f

    Citation Envoyé par jerome0 Voir le message
    Mais du coup est-ce qu'il y à un problème au niveau du branchement du pickit ? car je n'ai vraiment aucun problème pour le débogage . . .
    Si le débuggeur fonctionne c'est que le PICKIT est correctement connecté.

  14. #13
    jerome0

    Re : conserver programme dans pic18f

    D'accord, bon c'est déjà un bon point. Mais comment est-ce que l'on fait normalement ?
    j'ai remarqué que lors du chargement du programme il est apparemment écrit dans EEData.
    Pour qu'il fonctionne sans branchement, je ne dois pas écrire dans la flash ?

  15. #14
    antek

    Re : conserver programme dans pic18f

    Le programme est chargé en mémoire . . . programme, et je serais étonné qu'il y ait la place en EEPROM.
    Les tuto Microchip expliquent tout ce qu'il faut faire.

  16. #15
    antek

    Re : conserver programme dans pic18f

    Citation Envoyé par jerome0 Voir le message
    Seulement impossible de l'implémenter . . .
    Tu peux montrer les copies d'écran qui te font dire celà ?

  17. #16
    jerome0

    Re : conserver programme dans pic18f

    je n'ai pas de message qui me le confirme, c'est que je me suis car lorsque j’enlève le pickit3 le programme ne se lance pas

  18. #17
    antek

    Re : conserver programme dans pic18f

    Citation Envoyé par jerome0 Voir le message
    je n'ai pas de message qui me le confirme . . .
    Normalement un message confirme le chargement correct du programme.
    Ensuite vérifier le fonctionnement des modules un par un.
    Ensuite y'a plus qu'à sortir l'oscilloscope.

  19. #18
    jerome0

    Re : conserver programme dans pic18f

    Donc normalement avec ça :

    Nom : Capture du 2017-05-19 19-52-54.png
Affichages : 66
Taille : 14,8 Ko

    le programme est bien implémenté ?

    vous auriez un lien pour le tuto ?
    https://wiki.electroniciens.cnrs.fr/...A9er_un_Projet
    j'ai lu celui ci mais franchement je ne comprend pas, pourqoi devoir faire des macro et tout alors que pour le mode debug, on a juste a cliquer sur un bouton ?..
    Dernière modification par jerome0 ; 19/05/2017 à 18h58.

  20. #19
    jerome0

    Re : conserver programme dans pic18f

    Bon,,,,,, alors j'ai trouvé pourquoi je n'y arrivais pas.

    Nom : Capture du 2017-05-19 20-40-04.jpg
Affichages : 72
Taille : 133,8 Ko

    Je n'avais tout simplement pas cliqué sur "Programmer to Go Pckit3".... sa a fonctionné du premier coup... ^^

    Merci à vous

  21. #20
    antek

    Re : conserver programme dans pic18f

    Citation Envoyé par jerome0 Voir le message
    le programme est bien implémenté ?

    vous auriez un lien pour le tuto ?
    Oui si tu l'as chargé en cliquant sur "Make and Program Main Project"
    Je n'ai jamais utilisé "programmer To Go" et ne sais ce qu'il fait.

    A partir de là tu as le choix :
    http://microchipdeveloper.com/tls0101:start

  22. #21
    RISC

    Re : conserver programme dans pic18f

    Salut,
    Attention....le mode "Programmer to Go" est un firmware spécial qui permet de charger le PIC SANS être connecté au PC.
    Dans ce mode la il est impossible de deboguer...donc si tu peux déboguer tu n'es PAS dans le mode programmer to go.
    Il ne faut pas confondre le mode Debugger et le mode Progammer.
    Et il ne faut aussi pas confonfre le mode Programmer et le mode Programmer To GO...
    Si tu programmes le PIC en mode Debugger, tu n'as pas le droit de déconnecter le pcikit3...
    Si tu veux que le PIC fonctionne déconnecté du pickit3, il faut le programmer en mode "Programmer".
    L'image binaire est différente entre le mode programmer et le mode debugger
    Voir les tutos déjà mentionnés sur le site microchipdeveloper
    a+
    Dernière modification par RISC ; 22/05/2017 à 15h18.

Discussions similaires

  1. Dans quoi peut on conserver le F2 ?
    Par kimcds dans le forum Chimie
    Réponses: 7
    Dernier message: 22/10/2016, 00h24
  2. conserver la memoire en fermant un programme c
    Par invite0b7bc3b2 dans le forum Électronique
    Réponses: 6
    Dernier message: 15/02/2010, 12h54
  3. es-t-il possible de conserver des informations dans la lumiére
    Par invite259b90d4 dans le forum Matériel - Hardware
    Réponses: 6
    Dernier message: 25/05/2007, 16h26
  4. conserver la chaleur dans une couveuse maison
    Par invite94b3ccda dans le forum Biologie
    Réponses: 2
    Dernier message: 03/03/2007, 13h19
  5. Aide pour programme PIC18F (PIC-->CNA)
    Par invitefe70cd58 dans le forum Électronique
    Réponses: 1
    Dernier message: 12/06/2006, 21h54
Découvrez nos comparatifs produits sur l'informatique et les technologies.