Problème Simulation PIC18F4520 sous PROTEUS
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 38

Problème Simulation PIC18F4520 sous PROTEUS



  1. #1
    invitedf6fcb20

    Problème Simulation PIC18F4520 sous PROTEUS


    ------

    Voila.
    J'ai pourtant fait un programme tout pourris.
    Un bébé pourrais le réaliser.
    #include<P18F4520.h>
    #include<delays.h>

    void main(void)
    {
    TRISA=0xFF;
    TRISB=0x00;

    PORTB=0x00;
    Delay10KTCYx(50);
    PORTB=0x01;
    Delay10KTCYx(50);
    PORTB=0x02;
    }

    Sous proteus, j'ai mis une 1MHz dans la rubrique Processor Clock Frequency, histoire qu'un cycle face 1.e-6. Le but étant d'obtenir grâce aux delays des temporisation de 0,5s, mais rien de ne se passe comme je le voudrai.
    Pourriez vous m'aider s'il vous plait ?

    -----
    Images attachées Images attachées  

  2. #2
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Salut,

    Déjà si tu as mis 1MHz pour la clock alors tu auras une cadence d'instruction de 1/4MHz car 1instruction -> 4cycles d'horloge.

    Donc dans ton cas tu dois avoir un signal rectangulaire de période 4sec.

    A+

  3. #3
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Je ne comprend pas ce que tu veux dire.
    Comment je fais alors.
    Aurais tu un exemple à me proposer ?

  4. #4
    invitefaaca50b

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    le Monsieur Ammoniaque, il dit que sur une frequence d'horloge de 1MHz, tu n'auras que 256000 cycles d'instructions. La frequence d'execution est le quart de la frequence d'horloge. Utilise donc une frequence d'horloge de 4MHz et mefie toi des instructions qui utilisent 2 cycles pour s'executer...

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

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Citation Envoyé par Franck-026 Voir le message
    le Monsieur Ammoniaque, il dit que sur une frequence d'horloge de 1MHz, tu n'auras que 256000 cycles d'instructions. La frequence d'execution est le quart de la frequence d'horloge. Utilise donc une frequence d'horloge de 4MHz et mefie toi des instructions qui utilisent 2 cycles pour s'executer...
    Hello,

    256000 tu es sûr ? Pas plutôt 250000 car 1000000/4 = 250000 ?!

  7. #6
    invitefaaca50b

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    oh pinaise oui je suis mal reveillé ce matin... 250 000 oui pas 256 000.... je tourne dans la semoule ce matin moi...

  8. #7
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Citation Envoyé par Mickl1722 Voir le message
    Je ne comprend pas ce que tu veux dire.
    Comment je fais alors.
    Aurais tu un exemple à me proposer ?
    Et bien il faut considérer que pour une instruction tu auras quatre cycles d'horloge.

    Sachant que 'Delay10KTCYx(50);' correspond à 50 * 10 000 instructions tu auras (avec un quartz à 1MHz) une période de (50 * 10 000 * 4 / 1 000 000) soit 2sec.


    -> http://jp.themes.pagesperso-orange.f...tion_delay.htm

  9. #8
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    En d'autre termes, si je met un quartz de 4MHz pour le pic, tout devrait être réglé, sauf que pour moi, ce n'est pas le cas.
    J'obtien ceci
    Images attachées Images attachées  

  10. #9
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Citation Envoyé par Mickl1722 Voir le message
    En d'autre termes, si je met un quartz de 4MHz pour le pic, tout devrait être réglé, sauf que pour moi, ce n'est pas le cas.
    J'obtien ceci
    Peux tu poster ton code exact stp ?

    Car celui que tu as mis est assez bizarre, pas de while donc bouclage au début du main (aucun intérêt !).

  11. #10
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Voici donc mon code, et puis mon shémas tests.
    Code:
    #include<p18F4520.h>
    #include<delays.h>
    
    void main(void)
    {
    	/* Configuration des PORTS d'Entrées et de Sorties */
    	TRISA=0xFF;				/* PORT A en entrée */
    	TRISB=0x00;				/* PORT B en sortie */
    
    	/* Initialisation et déclaration des Variables */
    	while(PORTA == 0x00)
    	{
    		PORTB=0x00;				/* 0 s'affiche sur l'Afficheur 7-Segments*/
    		Delay10KTCYx(50);		/* Tempo de 0,5s */
    		PORTB=0x01;
    		Delay10KTCYx(50);
    	}
    }
    Images attachées Images attachées  

  12. #11
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Suite à certains problèmes, j'ai modifié certains parametres.
    Le port d'entrée est maintenant le PORTC et le port de sortie est le PORTD.
    La temporisation fait, par contre toujours défaut.

  13. #12
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Citation Envoyé par Mickl1722 Voir le message
    Suite à certains problèmes, j'ai modifié certains parametres.
    Le port d'entrée est maintenant le PORTC et le port de sortie est le PORTD.
    La temporisation fait, par contre toujours défaut.
    Tu utilises quoi comme compilateur?
    Tu ne dois pas faire une définition de ta fréquence de quartz pour delays.h ?

  14. #13
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Actuellement, j'utilise MPLAB IDE. Un logiciel que j'ai utilisé il à plus d'un an.
    J'ai un peu oublié depuis, alors pour la définition du quartz pour delay.h, j'en sais trop rien.

  15. #14
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Citation Envoyé par Mickl1722 Voir le message
    Actuellement, j'utilise MPLAB IDE. Un logiciel que j'ai utilisé il à plus d'un an.
    J'ai un peu oublié depuis, alors pour la définition du quartz pour delay.h, j'en sais trop rien.
    Non il n'y a rien a définir, je viens d'aller voir les descriptions des librairies pour MCC18 et rien n'indique qu'il faille faire quoi que ce soit.

    Tu obtiens quoi comme temps exactement?

  16. #15
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    J'obtient ça.
    La même chose que précédemment.
    A peu près 666ms au lieu des 500ms
    Images attachées Images attachées  

  17. #16
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Tu devrais poster ton projet complet, sources du code et schéma d'isis.

    Je ne pense pas pouvoir tester ça ce soir mais si j'ai quelques minutes je pourrais jeter un oeil.

    Sur ton post10, pourquoi as tu un signal sur D1? Tu ne le changes jamais, il doit toujours être à 0 ...
    Essais d'utiliser LATB plutôt que PORTB pour appliquer ta sortie.

  18. #17
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    J'ai fait un fichier zip, avec dedans, une image du schémas, le .DNS et .PWI de PROTEUS, et le .c, c'est à dire le programme que je test.
    Si tu veux autre chose, n'hésite pas à me le faire savoir.

    Après de multiples tests au hasard, en mettant 37 et 38 au lieu de 50, j'y arrive, mais ça n'a rien avec une démarche scientifique.
    Fichiers attachés Fichiers attachés

  19. #18
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    quelqu'un a testé, ou a trouvé une solution ?

  20. #19
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Hi,

    1ère erreur que j'ai vu : tu as oublié le break pour le default de ton switch ...

    Sinon je pense que les fonctions utilisant des nop pour faire des délais ça n'est pas le plus conseillé pour faire des tempo' précises. Utilise plutôt un timer, d'autant que là tu as un gros µC pour un petit code .

    J'ai fait un test vite fait sous MPLAB pour voir si la fonction faisait exactement le nombre d'instructions voulues. pour un "Delay10KTCYx(50);" j'ai obtenu 499 998 Tcy donc pas de soucis niveau code je pense...

  21. #20
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Hi,

    Erreur tellement banale et grosse que je ne l'avais pas vu : tu as oublié de mettre les fusibles de configuration.
    Dans ton cas je pense que seuls sont utiles :
    #pragma config OSC = HS //OSCILLATOR
    #pragma config WDT = OFF //WATCHDOG disabled
    Je n'ai pas testé si ça aidé pour ton programme mais c'est bien mieux pour ton code !
    À mettre avant ton main().

  22. #21
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Je viens de faire les quelques changements, mais toujours le même problème.
    une itération, cela prend combien de cycles? 2 pour un while et 1 pour un if non ?
    A mon avis, il faudrait que je les inclus dans cette tentative de temporisation.
    Mais, j'aimerais faire une temporisation à plus grande échelle. Du genre 1 minute, parce que par la suite, l'utilisateur pourra choisir la durée variant de minutes en minutes. Pour le moment, je pense que le choix s'effectuera avec deux boutons. Un pour incrémenter la durée, et l'autre pour la décrémenter. Pour afficher la durée à choisir, l'interface ne sera pour le moment qu'un simple afficheur 7 segment, ne maitrisant pas du tout (pour le moment) les écrans LCD, ou plutôt le type de programmation à utiliser pour cela.
    Pourriez vous m'aider à réaliser cette temporisation ?

  23. #22
    guillaume83

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Bonsoir ,dans le temps total, il faut aussi compter les instructions pour le while {}:

    pour connetre le nombre de cycles exactes, fais une simulation sous mplab et utilise un breakpoint et une stopwatch.
    tu connaiteras ainsi le nombres de cycles et tu pourras corriger les delays .
    @+

  24. #23
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Citation Envoyé par guillaume83 Voir le message
    Bonsoir ,dans le temps total, il faut aussi compter les instructions pour le while {}:

    pour connetre le nombre de cycles exactes, fais une simulation sous mplab et utilise un breakpoint et une stopwatch.
    tu connaiteras ainsi le nombres de cycles et tu pourras corriger les delays .
    @+
    D'accord, je vais essayé.
    Est ce que quelque sait comment utilisé et configurer un timer, ou bien un lien tout simplement ?

  25. #24
    guillaume83

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Dans l'aide de mplab :topic _ c18_ libraries
    dedans tu truveras les libs pour les timers :
    opentrmx
    clostrmx.......

  26. #25
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Désolé, mais je ne trouve pas

  27. #26
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    J'ai trouvé un logiciel qui ma l'air efficace Pic Timer Calculator.
    Cela me donne des infos pour démarrer. C'est déjà pas mal.

  28. #27
    invitedb9b1ced

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Citation Envoyé par Mickl1722 Voir le message
    Désolé, mais je ne trouve pas
    Hi

    Chez moi : C:\Program Files\Microchip\mplabc18\v3.40 \example\Interrupt

    A+

  29. #28
    invitedf6fcb20

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    Je n'arrive pas à compiler ces ligne de code. Pourquoi ?
    Code:
    #include<p18F4520.h>
    
    static void interrupt_horloge(); // sous programme d'interruption tempo
    unsigned char cCompter;		// variable globale de type char nommé compter
    
    void main(void)
    {
    	// Timer1 Registers:
    	// Prescaler=1:8; TMR1 Preset=15536; Freq=10,00Hz; Period=100,00 ms
    	T1CON.T1CKPS1 = 1;// bits 5-4  Prescaler Rate Select bits
    	T1CON.T1CKPS0 = 1;//
    	T1CON.T1OSCEN = 1;// bit 3 Timer1 Oscillator Enable Control: bit 1=on
    	T1CON.T1SYNC  = 1;// bit 2 Timer1 External Clock Input Synchronization Control bit: 1=Do not synchronize external clock input
    	T1CON.TMR1CS  = 1;// bit 1 Timer1 Clock Source Select bit: 0=Internal clock (FOSC/4) / 1 = External clock from pin T13CKI (on the rising edge)
    	T1CON.TMR1ON  = 1;// bit 0 enables timer
    	TMR1H = 0x3C;     // preset for timer1 MSB register
    	TMR1L = 0xB0;     // preset for timer1 LSB register
    
    	TRISD=0;			//Configuration du port D en sortie
    	PORTD=0;			//Les sorties du port D sont à 0
    	PORTDbits.RD0=1;	//LED allumé
    	cCompter=0;
    }
    
    static void interrupt_horloge()
    {
    	if (T0IF)
    	{
    		cCompter++;
    		if (cCompter >=10) // Passe ici toutes le 1s
    		{
    			cCompter=0;
    			PORTDbits.RD1=!RD1;   // Inverse la sortie RD1 à chaque passage
    		}
    		T0IF=0;  // on passe le bit d'interruption à 0
    	}
    }

  30. #29
    guillaume83

    Re : Problème Simulation PIC18F4520 sous PROTEUS


  31. #30
    guillaume83

    Re : Problème Simulation PIC18F4520 sous PROTEUS

    re bonsoir,
    pour ton code , je croi que le probleme vien de TOIF.
    A voir si il est déclaré avec un #define
    ou si il existe sous forme ITCONbit.toif
    Aller une petite aide:
    chercher dans ce fichier :
    .............\mplab\MCC18\h\p1 8 f4520
    bonnes recherche.
    @+

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Problème de simulation d'une PLL 4046 sous Proteus
    Par inviteedcf41c6 dans le forum Électronique
    Réponses: 9
    Dernier message: 06/04/2011, 22h56
  2. simulation d'une 24C64 sous proteus
    Par invitede9d6d97 dans le forum Électronique
    Réponses: 0
    Dernier message: 13/02/2011, 15h55
  3. simulation spice sous isis (proteus)
    Par invite041e6c83 dans le forum Électronique
    Réponses: 1
    Dernier message: 04/02/2010, 16h33
  4. simulation sous proteus (probleme dans mon montage ?)
    Par black templar dans le forum Électronique
    Réponses: 9
    Dernier message: 05/05/2008, 21h54
  5. erreur de simulation sous proteus 6.7
    Par inviteba732215 dans le forum Électronique
    Réponses: 2
    Dernier message: 11/03/2006, 13h46
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...