Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

commande de moteur pap



  1. #1
    ABN84

    commande de moteur pap


    ------

    bonjour,
    ça fait un bon moment que je n'ai plus programmé de PIC, et je dois m'y remettre. voici un petit programme qui devrait commander un pap fait à l'arrache alors soyez indulgents mais dites moi tout ce qui ne va pas. merci.
    Code:
    #include <time.h>
    #include <p18f877.h>
    
    void main (void)
    {
    	TRISAbits.TRISA0 = 0;
    	TRISAbits.TRISA1 = 0;
    	TRISAbits.TRISA2 = 0;
    	TRISAbits.TRISA3 = 0;
    	
    	while(1)
    	{
    		PORTAbits.RA0 = 0;
    		PORTAbits.RA1 = 1;
    		PORTAbits.RA2 = 0;
    		PORTAbits.RA3 = 1;
    		sleep(1);
    
    		PORTAbits.RA0 = 0;
    		PORTAbits.RA1 = 1;
    		PORTAbits.RA2 = 1;
    		PORTAbits.RA3 = 0;
    		sleep(1);
    
    		PORTAbits.RA0 = 1;
    		PORTAbits.RA1 = 0;
    		PORTAbits.RA2 = 1;
    		PORTAbits.RA3 = 0;
    		sleep(1);
    
    		PORTAbits.RA0 = 1;
    		PORTAbits.RA1 = 0;
    		PORTAbits.RA2 = 0;
    		PORTAbits.RA3 = 1;
    		sleep(1);
    	}
    
    }

    -----
    "Engineering is the art of making what you want from what you get"

  2. Publicité
  3. #2
    ABN84

    Re : commande de moteur pap

    je remonte
    "Engineering is the art of making what you want from what you get"

  4. #3
    invite03481543

    Re : commande de moteur pap

    Salut,

    comment sors-tu du mode sleep, as-tu prévu une interruption pour cela?
    Dois-tu travailler sur pile pour justifier le mode sleep?
    Dis m'en plus sur ton cahier des charges.

    Quel compilo C utilises-tu?
    @+

  5. #4
    ABN84

    Re : commande de moteur pap

    bonsoir,
    pour l'instant, j'essaie de me raffraichir la memoire.
    comment sors-tu du mode sleep, as-tu prévu une interruption pour cela?
    j'ai crus comprendre que "sleep" permet d'arreter l'execution un certain nombre de secondes. donc j'envois la 1ere sequence de commade, j'attends 1s, puis j'envois la deuxieme, ainsi de suite.
    je viens d'y penser: tel que ecrit maintenant le moteur fera 4 pas et s'arretera.
    Dois-tu travailler sur pile pour justifier le mode sleep?
    je n'ai pas compris la remarque.
    Dis m'en plus sur ton cahier des charges.
    pour l'instant juste faire tourner le moteur. en suite le faire tourner en imposant le sens et la vitesse, et finalement lui imposer une vitesse ainsi qu'une position à atteindre.
    Quel compilo C utilises-tu?
    C18

    merci
    "Engineering is the art of making what you want from what you get"

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

    Re : commande de moteur pap

    Le mode sleep est fait pour obtenir la consommation la plus faible (qques µA), il se justifie surtout pour les applications sur accus ou piles.
    Pour sortir d'un mode sleep tu dois soit reseter soit réveiller le µC par une interruption dédiée ou par le watchdog.

    Il me semble que le mieux dans ton cas est d'utiliser une fonction tempo style delay_tempo();

  8. #6
    ABN84

    Re : commande de moteur pap

    bonsoir,
    j'ai créé un fichier main.c :
    Code:
    #include <delays.h>
    #include <p16f877.h>
    
    void main (void)
    {
    	TRISAbits.TRISA0 = 0;
    	TRISAbits.TRISA1 = 0;
    	TRISAbits.TRISA2 = 0;
    	TRISAbits.TRISA3 = 0;
    	
    	while(1)
    	{
    		PORTAbits.RA0 = 0;
    		PORTAbits.RA1 = 1;
    		PORTAbits.RA2 = 0;
    		PORTAbits.RA3 = 1;
    		delay_ms(1000);
    
    		PORTAbits.RA0 = 0;
    		PORTAbits.RA1 = 1;
    		PORTAbits.RA2 = 1;
    		PORTAbits.RA3 = 0;
    		delay_ms(1000);
    
    		PORTAbits.RA0 = 1;
    		PORTAbits.RA1 = 0;
    		PORTAbits.RA2 = 1;
    		PORTAbits.RA3 = 0;
    		delay_ms(1000);
    
    		PORTAbits.RA0 = 1;
    		PORTAbits.RA1 = 0;
    		PORTAbits.RA2 = 0;
    		PORTAbits.RA3 = 1;
    		delay_ms(1000);
    	}
    
    }
    j'ai créé un projet sous mplab, y ai ajouté le fichier, et ai compilé, mais j'obtiens l'erreur suivante:
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: "C:\mcc18\bin\mcc18.exe" -p=16F877 "main.c" -fo="main.o" -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
    MPLAB C18 v2.40 (demo)
    Copyright 1999-2004 Microchip Technology Inc.
    Days remaining until demo becomes feature limited: 60
    Error: unsupported processor 16F877
    Error executing C:\mcc18\bin\mcc18-traditional. Unknown error [errno = 0]
    Halting build on first failure as requested.
    BUILD FAILED: Mon Mar 10 23:42:58 2008
    pourtant j'ai bien indiqué 16F877 lors de la creation du projet.
    merci
    "Engineering is the art of making what you want from what you get"

  9. Publicité

Discussions similaires

  1. Question moteur PAP
    Par JimKirk00 dans le forum Électronique
    Réponses: 2
    Dernier message: 26/07/2007, 16h27
  2. moteur PAP
    Par jer08 dans le forum Électronique
    Réponses: 5
    Dernier message: 06/10/2006, 09h01
  3. Commande moteur PAP bipol. 400pas
    Par thomasalbert1993 dans le forum Électronique
    Réponses: 5
    Dernier message: 16/08/2006, 13h55
  4. questions sur moteur PaP?
    Par 38decibel dans le forum Électronique
    Réponses: 3
    Dernier message: 28/04/2006, 12h17
  5. Commande Moteur PAP bipolaire
    Par zanzeoo dans le forum Électronique
    Réponses: 1
    Dernier message: 09/01/2005, 17h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.