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

Salut



  1. #1
    PROJET5

    Salut


    ------

    j'ai programmé en Micro C commande du moteur pas à pas unipolaires avec afficheur sur ecran LCD du nombre de pas et j'ai trouvé un problème dés que le moteur s'arrête l'afficheur afficheur le nombre de pas. Aidez- moi s'il vous plait à ce problème et vous me dites d'aprés mon programme l'afficheur doit affiché la séquence de pas 01 2 3 ou bien 1 2 4 8. et merci d'avance.


    Code:
    sbit LCD_RS at RC0_bit;
    sbit LCD_EN at RC1_bit;
    sbit LCD_D4 at RC2_bit;
    sbit LCD_D5 at RC3_bit;
    sbit LCD_D6 at RC4_bit;
    sbit LCD_D7 at RC5_bit;
    
    
    sbit LCD_RS_Direction at TRISC0_bit;
    sbit LCD_EN_Direction at TRISC1_bit;
    sbit LCD_D4_Direction at TRISC2_bit;
    sbit LCD_D5_Direction at TRISC3_bit;
    sbit LCD_D6_Direction at TRISC4_bit;
    sbit LCD_D7_Direction at TRISC5_bit;
    unsigned int adc;
    unsigned int txt[4];
    unsigned int txt00[4];
    unsigned char txt0[] = "Stepper Motor";
    unsigned char txt2[] = "Nbre pas:";
    unsigned char Tab[4];
    
    void Init_PIC(void);
    void Init_LCD(void);
    void Move_Moteur_Droite( unsigned int nbre_pas, unsigned int temps);
    void Move_Moteur_Gauche(void);
    void Affiche_Intro_LCD(void);
    void Conversion_Tab_Entier(void);
    
    
    void main()
    {
    
        Init_PIC();
        Lcd_Init();
        Lcd_Cmd(_LCD_CLEAR);
        Lcd_Cmd(_LCD_CURSOR_OFF);
    
    
        Lcd_Out(1, 3, txt0);
         delay_ms(500);
    
    
        delay_ms(1000);
        Lcd_Cmd(_LCD_CLEAR);
    
        Lcd_Out(1, 2, txt2);
        while(1){
         adc = Tab[(i%4)];
         i++;
         inttostr(adc,txt2);
         Lcd_Out(1, 13, txt2);
         Delay_ms(200);
         }
        }
     void Init_PIC(void)
    {
      TRISB=0x00;
      TRISC=0x00;
      PORTB=0x00;
      PORTC=0x00;
      Tab[0]=1;
      Tab[1]=2;
      Tab[2]=4;
      Tab[3]=8;
    for(i=0; i<24; i++)
    {
      PORTB=Tab[i%4];
      PORTC=Tab[i%4];
      Delay_ms(200);
    }
      }
      void Move_Moteur_Droite(unsigned int Nbre_Pas, unsigned int temps)
    {
      unsigned char i;
    
    
        for(i = 0; i < 24; i++)
        {
    
    
                PORTC = Tab[i%4];
                Delay_ms(200);
    
    
    
            }
    
    }

    -----
    Dernière modification par JPL ; 28/03/2014 à 15h19. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. Publicité
  3. #2

  4. #3
    Cram 64

    Re : Salut

    Bonjour, pourtant la charte est claire sur le sujet :

    12. Les titres des messages doivent être explicites. Merci d'éviter autant que possible de dériver hors du fil du sujet.

    Associé à un simple bonjour devrait intéresser quelques lecteurs. Pour la modération, Cram 64.
    Le football, c'est comme les échecs...mais sans les dés. Lukas PODOLSKI, un expert, The Guardian.

  5. #4
    mgduc


  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    f6bes

    Re : Salut

    Bjr à toi,
    Pas besoin de mémoire. Suffit de visualiser les 26 sujets (à ce jour) de PROJET5.
    Qq secondes y suffisent.
    Bon WE

Découvrez nos comparatifs produits sur l'informatique et les technologies.