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); } }
-----