Exemple MCC18 des cours aix-marseille
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Exemple MCC18 des cours aix-marseille



  1. #1
    Ticlem

    Exemple MCC18 des cours aix-marseille


    ------

    Bonjour à tous,

    J'ai le projet d'afficher sur un LCD des valeurs de capteur de temperature et de pression et avec un bouton passer d'un capteur à un autre.
    Je travail donc avec MpLab V8.84 et MCC18. Mon Pic sera un 18f452 et un ecran alphanumérique 20*2.

    Je lis donc les différents cours du site aix-mrs.fr qui sont très bien adaptés pour mon cas. Je compile avec MCC18 puis j'ai réalisé le picdem2+ avec ISIS de Proteus afin de testé.

    J'ai donc compilé l'exemple "test fprintf" (que je comprend) sans modification dont voici le code :

    Code:
    // CD 01/2005
    // test printf sur PICDEM2+ et MCC18 v2.40
    #include <p18f452.h>
    #include <stdio.h> 		// printf
    #include <xlcd.h>	// pour OpenXLCD et putcXLCD
    
    
    unsigned char c;
    int i;
    unsigned char tampon[10];
    rom const unsigned char chrom[]=" en ROM";
    unsigned char chram[]=" en RAM";
    unsigned char * pram;
    rom unsigned char *prom;
    float f;
    
    // dirige user_putc vers l'afficheur LCD du PD2+
    int _user_putc (char c)
    {
    	putcXLCD(c);
    }
    
    
    void touche(void)
    {
     while(PORTA & 0x10);
     while(!(PORTA & 0x10));
    // efface l'afficheur LCD
     SetDDRamAddr(0);		
     fprintf(_H_USER,"                ");
     SetDDRamAddr(0x40);
     fprintf(_H_USER,"                ");
    } 
    
    
    void main(void)
    {	
    	TRISA=0b00010000;		// PORTA en entrée pour S2
    	OpenXLCD(FOUR_BIT & LINES_5X7 );	//initialise PIC pour LCD sur PD2
        SetDDRamAddr(0);					//ligne 0 de l'afficheur
    	f=5000.0/3.0;
    	i=150-200;
    	c='A';
    	pram=(unsigned char *)0x12AB ;
    	prom=(rom unsigned char *)0xAB12;
    	while(1)
    		{
       			SetDDRamAddr(0);					//ligne 0 de l'afficheur
    			fprintf(_H_USER,"TESTS PRINTF");
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER,"appuyez sur S2");
    			touche();
    
    			SetDDRamAddr(0);
    			fprintf(_H_USER,"caracteres: %c ",c);
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER,"%d %X %#X ",c,c,c);
    			touche();
    
    			SetDDRamAddr(0);
    			fprintf(_H_USER,"integers: %d",i);
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER,"%u %#x",i,i);
    			touche();
    
    			SetDDRamAddr(0);
    			fprintf(_H_USER,"binaires: %b",0x1A);
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER,"%010b",0x1A);
    			touche();
    
    			SetDDRamAddr(0);
    			fprintf(_H_USER,"Ptr RAM: %p",pram);
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER,"%#010P",pram);
    			touche();
    
    			SetDDRamAddr(0);
    			fprintf(_H_USER,"Ptr ROM: %p",prom);
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER,"%#010P",prom);
    			touche();
    
    			SetDDRamAddr(0);
    			fprintf(_H_USER,"RAM %s",chram);
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER,"ROM %S",chrom);
    			touche();
    
    			SetDDRamAddr(0);
    			ftoa(f,tampon,3,'s');
    			fprintf(_H_USER,"Reel: %s",tampon);
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER,"Reel: %s",ftoa(f,tampon,5,'f'));
    			touche();
    
    			SetDDRamAddr(0);
    			fprintf(_H_USER,"caract%cres perso",5);
    			SetDDRamAddr(0x40);
    			fprintf(_H_USER," %c%c%c%c%c%c%c%c ",0,1,2,3,4,5,6,7);
    			touche();
    		}
    }
    Mais sur ISIS on voit bien sur l'ecran le 1er message avec "test printf", j'appui sur le bouton et le second message avec "caracteres..." s'affiche mais au bout de quelques secondes le 1er message revient. Comment cela ce fait il?
    Du coup je ne peux pas changer de message et rester sur celui souhaité.

    Que dois je faire?

    Merci de votre aide,

    Bonne soirée

    -----

  2. #2
    Jack
    Modérateur

    Re : Exemple MCC18 des cours aix-marseille

    Que dois je faire?
    Poster dans le bon forum pour commencer, et lire les règles propres au forum info programmation. On peut y lire ceci:
    http://forums.futura-sciences.com/programmation-langages-algorithmique/441632-regles-participatives-nouveau-forum.html

    Message déplacé
    Dernière modification par Jack ; 03/04/2012 à 22h55.

  3. #3
    Ticlem

    Re : Exemple MCC18 des cours aix-marseille

    Ah pardon effectivement, c'est pourtant pas la 1er fois que je post au sujet des pics mais bien la 1er fois dans la mauvaise section.

    Sinon j'ai relu plusieurs fois le code et je ne vois pas de référence au temps, ni de temporisation et autre, pourquoi le 1er message revient sans cesse?!

  4. #4
    Jack
    Modérateur

    Re : Exemple MCC18 des cours aix-marseille

    Tu n'aurais pas un watchdog qui te génèrerait un reset?
    Il y a moyen d'afficher un message sur une console ou un terminal avec un printf ou autre au début de la fonction main?

    A+

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

    Re : Exemple MCC18 des cours aix-marseille

    J'ai ajouté au début de la fonction main les lignes :
    Code:
    SPBRG = 25; /* configure la vitesse (BAUD) 9600 N 8 1*/
    	TXSTA = 0x24;
    	RCSTA = 0x90; /* active l'USART*/
    
    	OpenXLCD(FOUR_BIT & LINES_5X7 );	//initialise PIC pour LCD sur PD2
        SetDDRamAddr(0);					//ligne 0 de l'afficheur
    
    	fprintf (_H_USART, "fprintf USART\n"); // vers USART
    Et avec ISIS j'ai mis un terminal virtuel. En effet toutes les 2s environ j'ai le message "fprintf USART" qui s'affiche dans mon terminal.
    Cela signifie donc que je sors du while(1) de la fonction main.

  7. #6
    Jack
    Modérateur

    Re : Exemple MCC18 des cours aix-marseille

    Citation Envoyé par Ticlem Voir le message
    Cela signifie donc que je sors du while(1) de la fonction main.
    Je répète donc ma question:
    Citation Envoyé par Jack
    Tu n'aurais pas un watchdog qui te génèrerait un reset?
    A+

  8. #7
    Ticlem

    Re : Exemple MCC18 des cours aix-marseille

    si en effet, je n'avais pas fait attention

    j'ai donc mis:
    Code:
    #pragma config WDT = OFF
    Merci beaucoup

Discussions similaires

  1. Fac de science aix/marseille
    Par invite7e85bfb0 dans le forum Orientation après le BAC
    Réponses: 5
    Dernier message: 28/01/2015, 16h37
  2. université à aix-marseille
    Par invite3f719a4d dans le forum Orientation après le BAC
    Réponses: 2
    Dernier message: 21/02/2010, 11h56
  3. Physique sur Aix-Marseille: St-Charles, Luminy ou Aix?
    Par invite93f309da dans le forum Orientation après le BAC
    Réponses: 0
    Dernier message: 31/01/2010, 20h43
  4. UPMC, Aix marseille, Nancy ??
    Par invitea91ee6e7 dans le forum Orientation après le BAC
    Réponses: 1
    Dernier message: 28/10/2009, 11h38
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...