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

Test servomoteur avec PIC 16F877



  1. #1
    invitea50d6c78

    Question Test servomoteur avec 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

    -----
    Dernière modification par Jack ; 09/06/2011 à 22h58. Motif: ajout balises code

  2. #2
    Jack
    Modérateur

    Re : Test servomoteur avec PIC 16F877

    la moindre des choses serait de donner l'erreur produite.

    Je transfère de plus en électronique, les problème de µC ne devant pas être présents dans le forum algo et langage comme indiqué dans l'épinglé.

    A+

Discussions similaires

  1. Diode RGB avec PIC 16F877
    Par invitef4e702f8 dans le forum Électronique
    Réponses: 7
    Dernier message: 01/03/2012, 17h02
  2. Calcule de vitesse avec un pic 16f877
    Par invite1878607c dans le forum Électronique
    Réponses: 3
    Dernier message: 09/03/2011, 16h30
  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. Réponses: 0
    Dernier message: 18/03/2007, 16h43
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...