Test servomoteur par PIC 16F877
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Test servomoteur par PIC 16F877



  1. #1
    invitea50d6c78

    Question Test servomoteur par PIC 16F877


    ------

    Bonsoir,
    Je suis actuellement en train d'essayer d'apprendre a utiliser un PIC 16F877 afin d'effectuer un test sur le controle d'un servomoteur.
    Après plusieurs recherches, et je me suis donc lancé dans la réalisation d'un programme en m'inspirant de ce que j'ai pu trouver.
    Le compilateur utilisé est HI-TECH sous MPLAB ICD2.
    Je rencontre actuellement un problème avec ce dernier, ce programme ne compile pas, et m'indique une erreur à partir du fichier 16F87.h .... Je n'ai pas créé de fichier de ce type, s'agit il d'une bibliothèque d'origine ou que je dois faire moi même...?
    Pourriez vous m'éclairer sur ce programme?

    Voici une ébauche de ce dernier :

    Code:
    #include "htc.h" // Importation des librairies standards
    #include "pic16f87.h" // Importation des librairies standards
    
    
    
    //Variables globales
    //******************
    
    int COMPTEUR1;
    int COMPTEUR2;
    int SIGNAL;
    int SENS;
    
    
    //Génération du signal
    //********************
    
    #define TIME 4 // TIMER=3
    
    #define PORT_SIGNAL RC1
    
    #define TS 360 // 360*50=18000 µs
    #define STOP 30 // 30*50 =1500µs
    #define AV 40 // 40*50 =2000µs
    #define AR 20 // 20*50 =1000µs
    
    
    main()
    {
    	PORTC = 0; // clear PortC
    	TRISC = 0; // on défini le PortC en sortie
    
    	init_timer();
    
    	while (1) //boucle infinie
    	{
    		SENS=AV; // en avant pendant 3"
    		__delay_ms(3000);
    		SENS=STOP; // stop 1"
    		__delay_ms(1000);
    		SENS=AR; // en arrière 3"
    		__delay_ms(3000);
    		SENS=STOP; // stop
    		__delay_ms(1000);
    	}
    }
    
    //Initialisation du timer
    //***********************
    
    
    void init_timer()
    {
    	OPTION = 0x07; //prescaler 256, entrée sur quartz
    	TMR0 = 0x00;
    }
    
    
    //Interruptions
    //**************
    
    #interrupt_timer0 // Interruption toutes les (4*250)/20000000 = 50µs
    
    main_int ()
    {
    	set_timer0(TIME);
    	
    	COMPTEUR1 = 0;
    	COMPTEUR2 = 0;
    
    	if (COMPTEUR1 == 360)
    	{
    		COMPTEUR1 = 0;
    		COMPTEUR2 = 0;
    		SIGNAL = 1;
    		PORTC = 1
    		COMPTEUR1 += 1;
    	}
    
    	else
    	{
    		if (SIGNAL==1) 
    		{
    			if (COMPTEUR2 == SENS) 
    			{
    				COMPTEUR2 +=1;
    				SIGNAL = 0;
    				PORTC = 0;
    			}
    		}
    	}
    }
    Merci d'avance pour votre aide!
    Bonne soirée à tous

    -----

  2. #2
    eldudo

    Re : Test servomoteur par PIC 16F877

    Tu t'es trompé dans le nom du fichier *.h que tu as inclus .
    Le fichier à inclure est pic16F877.h et pas pic16F87.h
    A plus

  3. #3
    invitea50d6c78

    Re : Test servomoteur par PIC 16F877

    J'ai également essayé avec #include "16f877.h" , mais le problème est le même...

  4. #4
    invitea50d6c78

    Re : Test servomoteur par PIC 16F877

    Voici l'erreur que ca m'affiche.... :

    2.22 ne peut pas ouvrir le fichier include "pic16f877.h": No such file or directory

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

    Re : Test servomoteur par PIC 16F877

    Hi,

    Avec Hi Tech C pas besoin d'include du header de ton PIC, il te suffit d'avoir bien choisi la config' dans MPLAB et d'inclure htc.h.

    Sinon n'oublies surtout pas d'initialiser les fusibles de ton PIC, ils configurent le fonctionnement de ton µC (oscillateur, mémoire, protection, etc etc).

    Sous MPLAB, Help->Topics et là tu devrais trouver quelque chose du genre "PIC16 config".

    Good luck.

  7. #6
    invitea50d6c78

    Re : Test servomoteur par PIC 16F877

    Merci pour ta réponse!
    Je n'ai pas trouvé de PIC16 config dans Help==>topic!

    Comment fait on pour initialiser le fusible?

  8. #7
    invitedb9b1ced

    Re : Test servomoteur par PIC 16F877

    Dans ce cas je te conseille d'aller voir dans le User manual de Hi Tech C (Windows->Tous les programmes->Hi Tech Software->...), chapitre 3.3.4 Configuration Bit Access. Il y a l'explication pour la configuration des fusibles.

    Pour le nom de chacun d'eux, il faut que tu ailles dans le header du µC (normalement dans ton cas ...\HI-TECH Software\PICC\...\include\pic1 6f877a.h)

  9. #8
    eldudo

    Re : Test servomoteur par PIC 16F877

    Ton erreur c'est que tu mets #include "pic16F877.h"

    à la place de #include "p16F877.h"

  10. #9
    eldudo

    Re : Test servomoteur par PIC 16F877

    Je dis peut-être une ânerie, mais le plus simple est de faire une recherche sur ton disque dur pour trouver les fichiers dont le nom se termine par 16F877.h, il doit pas y en avoir une tonne .
    Bon courage ...

  11. #10
    invitedb9b1ced

    Re : Test servomoteur par PIC 16F877

    Il ne faut pas inclure de header du µC utilisé.

    Ce n'est pas la méthode correcte pour utiliser le compilateur en question.

    Il faut d'abord bien choisir le µC utilisé (proposé par le wizard lors de la création du projet et si tu veux changer en cours de dév', il te suffit d'aller- dans MPlab - sous Configure->Select device).

    Une fois le composant choisi, il suffit de faire un include de htc.c et c'est cet header qui va faire les liens correctement.
    Et pour ceux qui doutent : page 50, chapitre 3.3.5 du document DS51865B.pdf de Microchip (intitulé "HI-TECH C® for PIC10/12/16 User’s Guide") il est clairement noté :
    There is a one-to-one correlation between device and header file name that will be included by <htc.h>, e.g. when compiling for a PIC16LF1826 device the <htc.h> header file will include <pic16lf1826.h>. Remember that you do not need to include this chip-specific file into your source code; it is automatically included by <htc.h>.
    Remercions les p'tits gars qui s'font ch*** à écrire les manuels !

Discussions similaires

  1. Test servomoteur avec PIC 16F877
    Par invitea50d6c78 dans le forum Électronique
    Réponses: 1
    Dernier message: 09/06/2011, 23h00
  2. asservissement de vitesse par pic 16f877
    Par invite8b7ac534 dans le forum Électronique
    Réponses: 1
    Dernier message: 10/05/2011, 15h18
  3. Aide pour test pic 16f877
    Par invitedbd2d35d dans le forum Électronique
    Réponses: 7
    Dernier message: 19/03/2010, 15h14
  4. Aide pour test pic 16f877
    Par invitedbd2d35d dans le forum Technologies
    Réponses: 2
    Dernier message: 16/03/2010, 13h10
  5. asservissement d'un moteur DC par un pic 16f877
    Par invitebe7e2fc2 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/05/2006, 02h33
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...