amelioration code PIC 16F876 moteur pas à pas - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 36 sur 36

amelioration code PIC 16F876 moteur pas à pas



  1. #31
    invite5d5dfac0

    Re : amelioration code PIC 16F876 moteur pas à pas


    ------

    Bonjour, merci beaucoup pour ces information! je comprend mieu comment realiser le code.
    mais je n'arrive toujours pas à écrire dans la routine d'interruption... j'ai le logiciel "PCW C compiler IDE" et même dans les exemples du logicile, je ne voi pas de code ressemblant à "void interrupt traite_int(void)".
    le seul code où il est question de pwm, il n'y a pas de référence aux interuptions...

    lorsque j'écris: "void interrupt traite_int(void)" le compilateur recherche des "(" après interrupt, comme pour definir une procedure ou une fonction...


    j'espère trouver un jour... j'ai essayer de compiler avec Hitech C pro, mais je comprend pas comment fonctionne le logiciel... (demo)

    en tout cas, merci pour votre aide!
    Salutations
    Olivier

    -----

  2. #32
    invite5d5dfac0

    Re : amelioration code PIC 16F876 moteur pas à pas

    re! en relisant tout les codes d'exemple, je suis tombé sur:
    #int_timer2
    void timer2_isr(void) {
    int sensor;
    signed int16 temp;

    timer2_count++;
    if (timer2_count>INTERRUPTS_PER_M INUTE) {
    timer2_count=0;
    if (display_new_data) {printf("\rData: ");}
    for (sensor=0;sensor<NUM_SENSORS;s ensor++) {
    temp=read_full_temp(sensor);
    if (display_new_data) {
    printf("%ld ",temp);
    }
    temp+=67; //sensor returns -67 to 257. fix to 0 to 324
    temp=abs(temp); //just in case
    write_program_eeprom(pm_addres s++,temp);
    if (pm_address > BUFFER_END) {pm_address=BUFFER_START;}
    log_count++;
    if (log_count > BUFFER_SIZE) {log_count=BUFFER_SIZE;}
    }
    }
    }

    est-ce que "#int_timer2" peut être l'interuption?
    je vais essayer avec ca...
    Salutations
    Olivier

  3. #33
    invite5d5dfac0

    Re : amelioration code PIC 16F876 moteur pas à pas

    le compilateur compile avec "int_timer2" j'ai du retirer "if (TMRxIF)", il cherche encore une "structure/union PIR1" je ne sais pas ce que c'est... si quelqu'un a une info... merci d'avance!
    Salutations
    Olivier

  4. #34
    invite5637435c

    Re : amelioration code PIC 16F876 moteur pas à pas

    Salut,

    Ce n'est pas mon compilateur C, mais en faisant une recherche voici comment tu dois t'y prendre:

    Il faut que tu initialises avec cela dans le main()

    Code:
    setup_timer_2(T2_DIV_BY_4,24,1); // dépend évidemment de ton appli
    enable_interrupts(INT_TIMER2);    // correspond à TMR2IE
    enable_interrupts(GLOBAL);         //     "     "     à GIE
    Puis,

    Code:
    #int_TIMER2 
    void TIMER2_isr() 
    { 
    PIR1bits.TMR2IF = 0;  // correspond à TMR2IF qui se trouve dans le registre PIR1
                          // le bit est remis à 0 dans l'attente d'une nouvelle détection du flag.
    .......
    }
    En rouge c'est ce qu'attend ton compilo.
    La structure permet ici d'appeler directement le bit correspondant à TMR2IF.
    Maintenant tu ne devrais plus avoir de problème pour conclure.
    @+

  5. #35
    invite5d5dfac0

    Re : amelioration code PIC 16F876 moteur pas à pas

    bonjour! merci pour ta reponse! j'ai essayé le "PIR1bits.TMR2IF=0" mais il ne fonctionne pas...
    par contre, j'ai trouvé le "mode d'emploi" du logiciel, avec les fonctions prises en charges!
    http://borg.cc.gatech.edu/gnats/doc/PICJuly2003.pdf

    j'ai essayé d'ajouter "noclear" à la fin mais rien...
    j'attend votre aide!
    merci beaucoup d'avance!
    Salutations
    Olivier

  6. #36
    invite5d5dfac0

    Re : amelioration code PIC 16F876 moteur pas à pas

    rebonjour!!
    j'ai enfin résolu le problème!! maintennant mon signal est bien propre! mais l'inconvéniant c'est que le pic doit gérer les interuptions et donc ralentit beaucoup... le signal d'horloge ne peut plus dépasser 1KHz... donc je ferrais des tests avec un vrais pic, et je prendrais le code qui me conven le mieu... merci en tout cas pour votre aide, sans laquelle je n'aurrais rien pu faire!

    ps: si quelqu'un veut le code C du pic, qu'il m'envoie un message perso... le code est surement très lourd (je ne fais pas de programmation habituellement) mais il a l'air de fonctionner...

    Salutations
    Olivier

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Réponses: 25
    Dernier message: 02/03/2014, 16h52
  2. liaison PIC <-> moteur pas à pas
    Par inviteace5a566 dans le forum Électronique
    Réponses: 2
    Dernier message: 26/03/2008, 12h45
  3. pilotage de moteur pas a pas par port parralelle sans lpt
    Par invite481733e1 dans le forum Électronique
    Réponses: 3
    Dernier message: 18/03/2008, 23h11
  4. séquence moteur pas à pas controlé par PIC
    Par invitefb2b8d4f dans le forum Électronique
    Réponses: 6
    Dernier message: 20/02/2008, 13h03
  5. Commande moteur pas-à-pas avec pic
    Par invitee2a2ed9a dans le forum Électronique
    Réponses: 0
    Dernier message: 20/02/2008, 11h51
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...